From a647a9e8528feb6151b2bd9f4d1cbc76bf263d6d Mon Sep 17 00:00:00 2001 From: lorne <1991wangliang@gmail.com> Date: Fri, 26 May 2023 16:21:37 +0800 Subject: [PATCH 1/3] add domain event --- springboot-starter/pom.xml | 4 +++ .../domain/EntityEventInterceptor.java | 35 +++++++++++++++++++ .../framework/domain/EntityEventProxy.java | 22 ++++++++++++ .../framework/domain/EntityProxyFactory.java | 22 ++++++++++++ .../framework/domain/EventProxyEvent.java | 14 ++++++++ .../springboot/framework/domain/Demo.java | 8 +++-- .../domain/EntityProxyFactoryTest.java | 15 ++++++++ 7 files changed, 118 insertions(+), 2 deletions(-) create mode 100644 springboot-starter/src/main/java/com/codingapi/springboot/framework/domain/EntityEventInterceptor.java create mode 100644 springboot-starter/src/main/java/com/codingapi/springboot/framework/domain/EntityEventProxy.java create mode 100644 springboot-starter/src/main/java/com/codingapi/springboot/framework/domain/EntityProxyFactory.java create mode 100644 springboot-starter/src/main/java/com/codingapi/springboot/framework/domain/EventProxyEvent.java create mode 100644 springboot-starter/src/test/java/com/codingapi/springboot/framework/domain/EntityProxyFactoryTest.java diff --git a/springboot-starter/pom.xml b/springboot-starter/pom.xml index 6a103129..bcb741b1 100644 --- a/springboot-starter/pom.xml +++ b/springboot-starter/pom.xml @@ -66,6 +66,10 @@ spring-boot-starter-web test + + org.hibernate.orm + hibernate-core + diff --git a/springboot-starter/src/main/java/com/codingapi/springboot/framework/domain/EntityEventInterceptor.java b/springboot-starter/src/main/java/com/codingapi/springboot/framework/domain/EntityEventInterceptor.java new file mode 100644 index 00000000..cf924ed9 --- /dev/null +++ b/springboot-starter/src/main/java/com/codingapi/springboot/framework/domain/EntityEventInterceptor.java @@ -0,0 +1,35 @@ +package com.codingapi.springboot.framework.domain; + +import lombok.extern.slf4j.Slf4j; +import org.springframework.cglib.proxy.Enhancer; +import org.springframework.cglib.proxy.MethodInterceptor; +import org.springframework.cglib.proxy.MethodProxy; + +import java.lang.reflect.Method; + +@Slf4j +public class EntityEventInterceptor implements MethodInterceptor { + + private final Object target; + + public EntityEventInterceptor(Object target) { + this.target = target; + } + + public Object createProxy() { + Enhancer enhancer = new Enhancer(); + enhancer.setSuperclass(target.getClass()); + enhancer.setCallback(this); + return enhancer.create(); + } + + + @Override + public Object intercept(Object obj, Method method, Object[] args, MethodProxy proxy) throws Throwable { + String methodName = method.getName(); + log.info("EntityEventProxy invoke method:{}", methodName); + log.info("EntityEventProxy invoke args:{}", args); + log.info("EntityEventProxy invoke target:{}", target); + return method.invoke(target, args); + } +} diff --git a/springboot-starter/src/main/java/com/codingapi/springboot/framework/domain/EntityEventProxy.java b/springboot-starter/src/main/java/com/codingapi/springboot/framework/domain/EntityEventProxy.java new file mode 100644 index 00000000..b83a3b2c --- /dev/null +++ b/springboot-starter/src/main/java/com/codingapi/springboot/framework/domain/EntityEventProxy.java @@ -0,0 +1,22 @@ +package com.codingapi.springboot.framework.domain; + +import lombok.extern.slf4j.Slf4j; +import org.springframework.cglib.proxy.Proxy; + + +@Slf4j +public class EntityEventProxy { + + public static T createProxy(T target) { + return (T) Proxy.newProxyInstance( + target.getClass().getClassLoader(), + target.getClass().getInterfaces(), + (proxy, method, args) -> { + String methodName = method.getName(); + log.info("EntityEventProxy invoke method:{}", methodName); + log.info("EntityEventProxy invoke args:{}", args); + log.info("EntityEventProxy invoke target:{}", target); + return method.invoke(target, args); + }); + } +} diff --git a/springboot-starter/src/main/java/com/codingapi/springboot/framework/domain/EntityProxyFactory.java b/springboot-starter/src/main/java/com/codingapi/springboot/framework/domain/EntityProxyFactory.java new file mode 100644 index 00000000..3dd13b14 --- /dev/null +++ b/springboot-starter/src/main/java/com/codingapi/springboot/framework/domain/EntityProxyFactory.java @@ -0,0 +1,22 @@ +package com.codingapi.springboot.framework.domain; + +import java.lang.reflect.Constructor; +import java.lang.reflect.InvocationTargetException; + +public class EntityProxyFactory { + + public static T createEntity(Class entityClass, Object... args) { + try { + Class[] parameterTypes = new Class[args.length]; + for (int i = 0; i < args.length; i++) { + parameterTypes[i] = args[i].getClass(); + } + Constructor constructor = entityClass.getConstructor(parameterTypes); + T entity = constructor.newInstance(args); + EntityEventInterceptor interceptor = new EntityEventInterceptor(entity); + return (T)interceptor.createProxy(); + } catch (NoSuchMethodException | InstantiationException | IllegalAccessException | InvocationTargetException e) { + throw new RuntimeException("Failed to create entity", e); + } + } +} diff --git a/springboot-starter/src/main/java/com/codingapi/springboot/framework/domain/EventProxyEvent.java b/springboot-starter/src/main/java/com/codingapi/springboot/framework/domain/EventProxyEvent.java new file mode 100644 index 00000000..6e1b470d --- /dev/null +++ b/springboot-starter/src/main/java/com/codingapi/springboot/framework/domain/EventProxyEvent.java @@ -0,0 +1,14 @@ +package com.codingapi.springboot.framework.domain; + +import com.codingapi.springboot.framework.event.IEvent; + +public class EventProxyEvent implements IEvent { + + private Object entity; + + private long timestamp; + + private String field; + private Object oldField; + private Object newField; +} diff --git a/springboot-starter/src/test/java/com/codingapi/springboot/framework/domain/Demo.java b/springboot-starter/src/test/java/com/codingapi/springboot/framework/domain/Demo.java index 7b69f319..974adac5 100644 --- a/springboot-starter/src/test/java/com/codingapi/springboot/framework/domain/Demo.java +++ b/springboot-starter/src/test/java/com/codingapi/springboot/framework/domain/Demo.java @@ -5,7 +5,11 @@ import com.codingapi.springboot.framework.serializable.JsonSerializable; import com.codingapi.springboot.framework.serializable.MapSerializable; import lombok.Getter; +import lombok.NoArgsConstructor; +import lombok.ToString; +@ToString +@NoArgsConstructor public class Demo implements JsonSerializable, MapSerializable { @Getter @@ -19,10 +23,10 @@ public Demo(String name) { } public void changeName(String name) { - String beforeName = this.name; +// String beforeName = this.name; this.name = name; //push event - EventPusher.push(new DemoChangeEvent(beforeName, name)); +// EventPusher.push(new DemoChangeEvent(beforeName, name)); } } diff --git a/springboot-starter/src/test/java/com/codingapi/springboot/framework/domain/EntityProxyFactoryTest.java b/springboot-starter/src/test/java/com/codingapi/springboot/framework/domain/EntityProxyFactoryTest.java new file mode 100644 index 00000000..3ceff072 --- /dev/null +++ b/springboot-starter/src/test/java/com/codingapi/springboot/framework/domain/EntityProxyFactoryTest.java @@ -0,0 +1,15 @@ +package com.codingapi.springboot.framework.domain; + +import org.junit.jupiter.api.Test; +import org.springframework.boot.test.context.SpringBootTest; + +@SpringBootTest +class EntityProxyFactoryTest { + + @Test + void createEntity() { + Demo demo = EntityProxyFactory.createEntity(Demo.class, "test"); + System.out.println(demo); + demo.changeName("123"); + } +} \ No newline at end of file From 509afe4d660ff0e94a728a1ddc9dc9c38a1e506b Mon Sep 17 00:00:00 2001 From: lorne <1991wangliang@gmail.com> Date: Fri, 26 May 2023 19:53:12 +0800 Subject: [PATCH 2/3] add FieldProxyFactory --- springboot-starter/pom.xml | 4 - .../domain/EntityEventInterceptor.java | 35 ----- .../framework/domain/EntityEventProxy.java | 22 --- .../framework/domain/EntityProxyFactory.java | 22 --- .../framework/domain/EventProxyEvent.java | 14 -- .../domain/field/FieldChangeEvent.java | 46 +++++++ .../domain/field/FieldProxyFactory.java | 19 +++ .../domain/field/FieldValueInterceptor.java | 126 ++++++++++++++++++ .../springboot/framework/domain/Demo.java | 11 +- ...ryTest.java => FieldProxyFactoryTest.java} | 6 +- .../handler/EntityFiledChangeHandler.java | 14 ++ 11 files changed, 212 insertions(+), 107 deletions(-) delete mode 100644 springboot-starter/src/main/java/com/codingapi/springboot/framework/domain/EntityEventInterceptor.java delete mode 100644 springboot-starter/src/main/java/com/codingapi/springboot/framework/domain/EntityEventProxy.java delete mode 100644 springboot-starter/src/main/java/com/codingapi/springboot/framework/domain/EntityProxyFactory.java delete mode 100644 springboot-starter/src/main/java/com/codingapi/springboot/framework/domain/EventProxyEvent.java create mode 100644 springboot-starter/src/main/java/com/codingapi/springboot/framework/domain/field/FieldChangeEvent.java create mode 100644 springboot-starter/src/main/java/com/codingapi/springboot/framework/domain/field/FieldProxyFactory.java create mode 100644 springboot-starter/src/main/java/com/codingapi/springboot/framework/domain/field/FieldValueInterceptor.java rename springboot-starter/src/test/java/com/codingapi/springboot/framework/domain/{EntityProxyFactoryTest.java => FieldProxyFactoryTest.java} (58%) create mode 100644 springboot-starter/src/test/java/com/codingapi/springboot/framework/handler/EntityFiledChangeHandler.java diff --git a/springboot-starter/pom.xml b/springboot-starter/pom.xml index bcb741b1..6a103129 100644 --- a/springboot-starter/pom.xml +++ b/springboot-starter/pom.xml @@ -66,10 +66,6 @@ spring-boot-starter-web test - - org.hibernate.orm - hibernate-core - diff --git a/springboot-starter/src/main/java/com/codingapi/springboot/framework/domain/EntityEventInterceptor.java b/springboot-starter/src/main/java/com/codingapi/springboot/framework/domain/EntityEventInterceptor.java deleted file mode 100644 index cf924ed9..00000000 --- a/springboot-starter/src/main/java/com/codingapi/springboot/framework/domain/EntityEventInterceptor.java +++ /dev/null @@ -1,35 +0,0 @@ -package com.codingapi.springboot.framework.domain; - -import lombok.extern.slf4j.Slf4j; -import org.springframework.cglib.proxy.Enhancer; -import org.springframework.cglib.proxy.MethodInterceptor; -import org.springframework.cglib.proxy.MethodProxy; - -import java.lang.reflect.Method; - -@Slf4j -public class EntityEventInterceptor implements MethodInterceptor { - - private final Object target; - - public EntityEventInterceptor(Object target) { - this.target = target; - } - - public Object createProxy() { - Enhancer enhancer = new Enhancer(); - enhancer.setSuperclass(target.getClass()); - enhancer.setCallback(this); - return enhancer.create(); - } - - - @Override - public Object intercept(Object obj, Method method, Object[] args, MethodProxy proxy) throws Throwable { - String methodName = method.getName(); - log.info("EntityEventProxy invoke method:{}", methodName); - log.info("EntityEventProxy invoke args:{}", args); - log.info("EntityEventProxy invoke target:{}", target); - return method.invoke(target, args); - } -} diff --git a/springboot-starter/src/main/java/com/codingapi/springboot/framework/domain/EntityEventProxy.java b/springboot-starter/src/main/java/com/codingapi/springboot/framework/domain/EntityEventProxy.java deleted file mode 100644 index b83a3b2c..00000000 --- a/springboot-starter/src/main/java/com/codingapi/springboot/framework/domain/EntityEventProxy.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.codingapi.springboot.framework.domain; - -import lombok.extern.slf4j.Slf4j; -import org.springframework.cglib.proxy.Proxy; - - -@Slf4j -public class EntityEventProxy { - - public static T createProxy(T target) { - return (T) Proxy.newProxyInstance( - target.getClass().getClassLoader(), - target.getClass().getInterfaces(), - (proxy, method, args) -> { - String methodName = method.getName(); - log.info("EntityEventProxy invoke method:{}", methodName); - log.info("EntityEventProxy invoke args:{}", args); - log.info("EntityEventProxy invoke target:{}", target); - return method.invoke(target, args); - }); - } -} diff --git a/springboot-starter/src/main/java/com/codingapi/springboot/framework/domain/EntityProxyFactory.java b/springboot-starter/src/main/java/com/codingapi/springboot/framework/domain/EntityProxyFactory.java deleted file mode 100644 index 3dd13b14..00000000 --- a/springboot-starter/src/main/java/com/codingapi/springboot/framework/domain/EntityProxyFactory.java +++ /dev/null @@ -1,22 +0,0 @@ -package com.codingapi.springboot.framework.domain; - -import java.lang.reflect.Constructor; -import java.lang.reflect.InvocationTargetException; - -public class EntityProxyFactory { - - public static T createEntity(Class entityClass, Object... args) { - try { - Class[] parameterTypes = new Class[args.length]; - for (int i = 0; i < args.length; i++) { - parameterTypes[i] = args[i].getClass(); - } - Constructor constructor = entityClass.getConstructor(parameterTypes); - T entity = constructor.newInstance(args); - EntityEventInterceptor interceptor = new EntityEventInterceptor(entity); - return (T)interceptor.createProxy(); - } catch (NoSuchMethodException | InstantiationException | IllegalAccessException | InvocationTargetException e) { - throw new RuntimeException("Failed to create entity", e); - } - } -} diff --git a/springboot-starter/src/main/java/com/codingapi/springboot/framework/domain/EventProxyEvent.java b/springboot-starter/src/main/java/com/codingapi/springboot/framework/domain/EventProxyEvent.java deleted file mode 100644 index 6e1b470d..00000000 --- a/springboot-starter/src/main/java/com/codingapi/springboot/framework/domain/EventProxyEvent.java +++ /dev/null @@ -1,14 +0,0 @@ -package com.codingapi.springboot.framework.domain; - -import com.codingapi.springboot.framework.event.IEvent; - -public class EventProxyEvent implements IEvent { - - private Object entity; - - private long timestamp; - - private String field; - private Object oldField; - private Object newField; -} diff --git a/springboot-starter/src/main/java/com/codingapi/springboot/framework/domain/field/FieldChangeEvent.java b/springboot-starter/src/main/java/com/codingapi/springboot/framework/domain/field/FieldChangeEvent.java new file mode 100644 index 00000000..f5409926 --- /dev/null +++ b/springboot-starter/src/main/java/com/codingapi/springboot/framework/domain/field/FieldChangeEvent.java @@ -0,0 +1,46 @@ +package com.codingapi.springboot.framework.domain.field; + +import com.codingapi.springboot.framework.event.IEvent; +import lombok.Getter; +import lombok.Setter; +import lombok.ToString; + +/** + * 实体字段变更事件 + */ +@Setter +@Getter +@ToString(exclude = {"entity"}) +public class FieldChangeEvent implements IEvent { + + /** + * 实体对象 + */ + private Object entity; + + /** + * 实体类名称 + */ + private String simpleName; + + /** + * 时间戳 + */ + private long timestamp; + + /** + * 字段名称 + */ + private String fieldName; + /** + * 旧的值 + */ + private Object oldValue; + /** + * 新的值 + */ + private Object newValue; + + + +} diff --git a/springboot-starter/src/main/java/com/codingapi/springboot/framework/domain/field/FieldProxyFactory.java b/springboot-starter/src/main/java/com/codingapi/springboot/framework/domain/field/FieldProxyFactory.java new file mode 100644 index 00000000..5a9884b7 --- /dev/null +++ b/springboot-starter/src/main/java/com/codingapi/springboot/framework/domain/field/FieldProxyFactory.java @@ -0,0 +1,19 @@ +package com.codingapi.springboot.framework.domain.field; + +import java.lang.reflect.InvocationTargetException; + +/** + * 实体代理工厂 + */ +public class FieldProxyFactory { + + public static T create(Class entityClass, Object... args) { + FieldValueInterceptor interceptor = null; + try { + interceptor = new FieldValueInterceptor(entityClass, args); + } catch (NoSuchMethodException | InvocationTargetException | InstantiationException | IllegalAccessException e) { + throw new RuntimeException(e); + } + return (T) interceptor.createProxy(); + } +} diff --git a/springboot-starter/src/main/java/com/codingapi/springboot/framework/domain/field/FieldValueInterceptor.java b/springboot-starter/src/main/java/com/codingapi/springboot/framework/domain/field/FieldValueInterceptor.java new file mode 100644 index 00000000..8d9cf58c --- /dev/null +++ b/springboot-starter/src/main/java/com/codingapi/springboot/framework/domain/field/FieldValueInterceptor.java @@ -0,0 +1,126 @@ +package com.codingapi.springboot.framework.domain.field; + +import com.codingapi.springboot.framework.event.EventPusher; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.BeanUtils; +import org.springframework.cglib.proxy.Enhancer; +import org.springframework.cglib.proxy.MethodInterceptor; +import org.springframework.cglib.proxy.MethodProxy; + +import java.beans.PropertyDescriptor; +import java.lang.reflect.InvocationTargetException; +import java.lang.reflect.Method; +import java.util.HashMap; +import java.util.Map; + +/** + * 实体代理 + */ +@Slf4j +public class FieldValueInterceptor implements MethodInterceptor { + + // 目标类 + private final Class targetClass; + // 目标类构造函数参数类型 + private final Class[] parameterTypes; + // 目标类构造函数参数 + private final Object[] args; + + // 目标类实例 + private final Object target; + // 目标类属性描述 + private final PropertyDescriptor[] propertyDescriptors; + // 目标类属性值 + private final Map fields; + + public FieldValueInterceptor(Class targetClass, Object... args) throws NoSuchMethodException, + InvocationTargetException, InstantiationException, IllegalAccessException { + this.targetClass = targetClass; + this.args = args; + this.parameterTypes = new Class[args.length]; + for (int i = 0; i < args.length; i++) { + parameterTypes[i] = args[i].getClass(); + } + this.target = targetClass.getConstructor(parameterTypes).newInstance(args); + this.propertyDescriptors = BeanUtils.getPropertyDescriptors(targetClass); + this.fields = new HashMap<>(); + } + + + /** + * 创建代理 + * @return 代理对象 + */ + public Object createProxy() { + Enhancer enhancer = new Enhancer(); + enhancer.setSuperclass(targetClass); + enhancer.setCallback(this); + return enhancer.create(parameterTypes, args); + } + + + /** + * 拦截方法 + * @param obj 代理对象 + * @param method 方法 + * @param args 参数 + * @param proxy 代理 + * @return 方法返回值 + * @throws Throwable 异常 + */ + @Override + public Object intercept(Object obj, Method method, Object[] args, MethodProxy proxy) throws Throwable { + // 更新函数肯定有参数,如果没有参数,直接返回 + if (method.getParameterCount() <= 0) { + return method.invoke(target, args); + } + + if(fields.isEmpty()){ + this.readFields(); + } + Object result = method.invoke(target, args); + this.compareAndUpdateField(); + return result; + } + + /** + * 读取Entity字段 + * @throws InvocationTargetException InvocationTargetException + * @throws IllegalAccessException InvocationTargetException + */ + private void readFields() throws InvocationTargetException, IllegalAccessException { + for (PropertyDescriptor propertyDescriptor : propertyDescriptors) { + String name = propertyDescriptor.getName(); + Object value = propertyDescriptor.getReadMethod().invoke(target); + fields.put(name, value); + } + } + + /** + * 对比字段 + * @throws InvocationTargetException InvocationTargetException + * @throws IllegalAccessException InvocationTargetException + */ + private void compareAndUpdateField() throws InvocationTargetException, IllegalAccessException { + for (PropertyDescriptor propertyDescriptor : propertyDescriptors) { + String name = propertyDescriptor.getName(); + Object newValue = propertyDescriptor.getReadMethod().invoke(target); + Object oldValue = fields.get(name); + if (!newValue.equals(oldValue)) { + pushEvent(name, oldValue, newValue); + } + fields.put(name, newValue); + } + } + + private void pushEvent(String field, Object oldValue, Object newValue) { + FieldChangeEvent event = new FieldChangeEvent(); + event.setEntity(target); + event.setSimpleName(targetClass.getSimpleName()); + event.setFieldName(field); + event.setOldValue(oldValue); + event.setNewValue(newValue); + event.setTimestamp(System.currentTimeMillis()); + EventPusher.push(event); + } +} diff --git a/springboot-starter/src/test/java/com/codingapi/springboot/framework/domain/Demo.java b/springboot-starter/src/test/java/com/codingapi/springboot/framework/domain/Demo.java index 974adac5..3b50686b 100644 --- a/springboot-starter/src/test/java/com/codingapi/springboot/framework/domain/Demo.java +++ b/springboot-starter/src/test/java/com/codingapi/springboot/framework/domain/Demo.java @@ -5,15 +5,12 @@ import com.codingapi.springboot.framework.serializable.JsonSerializable; import com.codingapi.springboot.framework.serializable.MapSerializable; import lombok.Getter; -import lombok.NoArgsConstructor; -import lombok.ToString; -@ToString -@NoArgsConstructor public class Demo implements JsonSerializable, MapSerializable { @Getter private long id; + @Getter private String name; @@ -23,10 +20,10 @@ public Demo(String name) { } public void changeName(String name) { -// String beforeName = this.name; + String beforeName = this.name; this.name = name; - //push event -// EventPusher.push(new DemoChangeEvent(beforeName, name)); +// push event + EventPusher.push(new DemoChangeEvent(beforeName, name)); } } diff --git a/springboot-starter/src/test/java/com/codingapi/springboot/framework/domain/EntityProxyFactoryTest.java b/springboot-starter/src/test/java/com/codingapi/springboot/framework/domain/FieldProxyFactoryTest.java similarity index 58% rename from springboot-starter/src/test/java/com/codingapi/springboot/framework/domain/EntityProxyFactoryTest.java rename to springboot-starter/src/test/java/com/codingapi/springboot/framework/domain/FieldProxyFactoryTest.java index 3ceff072..735ea767 100644 --- a/springboot-starter/src/test/java/com/codingapi/springboot/framework/domain/EntityProxyFactoryTest.java +++ b/springboot-starter/src/test/java/com/codingapi/springboot/framework/domain/FieldProxyFactoryTest.java @@ -1,15 +1,15 @@ package com.codingapi.springboot.framework.domain; +import com.codingapi.springboot.framework.domain.field.FieldProxyFactory; import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; @SpringBootTest -class EntityProxyFactoryTest { +class FieldProxyFactoryTest { @Test void createEntity() { - Demo demo = EntityProxyFactory.createEntity(Demo.class, "test"); - System.out.println(demo); + Demo demo = FieldProxyFactory.create(Demo.class, "test"); demo.changeName("123"); } } \ No newline at end of file diff --git a/springboot-starter/src/test/java/com/codingapi/springboot/framework/handler/EntityFiledChangeHandler.java b/springboot-starter/src/test/java/com/codingapi/springboot/framework/handler/EntityFiledChangeHandler.java new file mode 100644 index 00000000..d4e7043d --- /dev/null +++ b/springboot-starter/src/test/java/com/codingapi/springboot/framework/handler/EntityFiledChangeHandler.java @@ -0,0 +1,14 @@ +package com.codingapi.springboot.framework.handler; + +import com.codingapi.springboot.framework.domain.field.FieldChangeEvent; +import lombok.extern.slf4j.Slf4j; + +@Slf4j +@Handler +public class EntityFiledChangeHandler implements IHandler{ + + @Override + public void handler(FieldChangeEvent event) { + log.info("field change event -> {}",event); + } +} From 2f47e8037629b1647164bfd0fb41a8a305c7af9f Mon Sep 17 00:00:00 2001 From: lorne <1991wangliang@gmail.com> Date: Fri, 26 May 2023 19:54:24 +0800 Subject: [PATCH 3/3] add FieldProxyFactory --- pom.xml | 2 +- springboot-starter-data-fast/pom.xml | 2 +- springboot-starter-id-generator/pom.xml | 2 +- springboot-starter-security-jwt/pom.xml | 2 +- springboot-starter/pom.xml | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) diff --git a/pom.xml b/pom.xml index f3f01479..8cb41c8e 100644 --- a/pom.xml +++ b/pom.xml @@ -12,7 +12,7 @@ com.codingapi.springboot springboot-parent - 2.1.0 + 2.1.1 https://github.com/codingapi/springboot-framewrok springboot-parent diff --git a/springboot-starter-data-fast/pom.xml b/springboot-starter-data-fast/pom.xml index 861c4da6..18e7a0ea 100644 --- a/springboot-starter-data-fast/pom.xml +++ b/springboot-starter-data-fast/pom.xml @@ -5,7 +5,7 @@ springboot-parent com.codingapi.springboot - 2.1.0 + 2.1.1 4.0.0 diff --git a/springboot-starter-id-generator/pom.xml b/springboot-starter-id-generator/pom.xml index 09e4c5ce..a703134a 100644 --- a/springboot-starter-id-generator/pom.xml +++ b/springboot-starter-id-generator/pom.xml @@ -5,7 +5,7 @@ springboot-parent com.codingapi.springboot - 2.1.0 + 2.1.1 4.0.0 diff --git a/springboot-starter-security-jwt/pom.xml b/springboot-starter-security-jwt/pom.xml index 62ceda6c..01c2fa90 100644 --- a/springboot-starter-security-jwt/pom.xml +++ b/springboot-starter-security-jwt/pom.xml @@ -6,7 +6,7 @@ springboot-parent com.codingapi.springboot - 2.1.0 + 2.1.1 springboot-starter-security-jwt diff --git a/springboot-starter/pom.xml b/springboot-starter/pom.xml index 6a103129..8a2794b4 100644 --- a/springboot-starter/pom.xml +++ b/springboot-starter/pom.xml @@ -5,7 +5,7 @@ com.codingapi.springboot springboot-parent - 2.1.0 + 2.1.1 springboot-starter