Commit cad60825 authored by 马超's avatar 马超

feat: 1.1.6 changelog

parent 26c04ea0
# LDP框架ChangeLog&升级方式
## 2020-09-17
版本号:**1.1.6**
### 更新内容
为了解决开发环境jar包不断变更引起的各种版本不一致问题,修改所有工程发版方式,以后每次发版将相关jar包`deploy``release`的包,例如,本次发版的base-api依赖方式为:
```xml
<dependency>
<groupId>com.sinra.ldp</groupId>
<artifactId>base-api</artifactId>
<version>1.1.6</version>
</dependency>
```
项目开发时尽量引用正式版本的jar包,这样开发环境的任何修改都不会导致版本不一致。如果需要新功能,只需要修改到对应的版本号即可。
## 2020-09-10
版本号:**1.0.67-hotfix**
......
......@@ -10,7 +10,7 @@
#### 1.1.1 注解介绍
**@AutoComputed**是一个字段注解,标识**实体类**字段为自动填充的注解,需要配合服务层的 **@AutoService** 使用,拥有两个属性,一个是command、一个是ref。注解可以通过command标识字段自动装配的方式,根据字段名查找对应计算方法,或根据command类型查找对应系统计算方法。command默认值为 **ComputedCommand.AUTO** ,以下是内置command每个值的解释:
**@AutoComputed**是一个字段注解,标识**实体类**字段为自动填充的注解,需要配合服务层的 **@AutoService** 使用,拥有四个属性,command、ref、refs、format。注解可以通过command标识字段自动装配的方式,根据字段名查找对应计算方法,或根据command类型查找对应系统计算方法。command默认值为 **ComputedCommand.AUTO** ,以下是内置command每个值的解释:
**AUTO**:根据字段名进行填充。
......@@ -24,6 +24,10 @@
**PINYIN**:将ref字段的拼音填充到此字段中
**REFERENCE**:将refs字段的值通过format规则填充到此字段
#### 1.1.2 使用案例
```java
......@@ -50,13 +54,17 @@ private String uuId;
// 值为PINYIN,ref为userName,将userName字段的中文拼音自动填充到字段中
@AutoComputed(command = ComputedCommand.PINYIN, ref = "userName")
private String sortName;
// 值为REFERENCE,refs是一个数组, 将数组中的字段值按照format的规则填充到字段中
@AutoComputed(command = ComputedCommand.REFERENCE, refs = {"name", "age", "gender"}, format = "%s-%s-%s")
private String referenceValue;
```
#### 1.1.3 自定义填充算法
当command值为 **ComputedCommand.AUTO** 时,会通过字段名查找计算方式,这里介绍一下如何自定义填充算法。自动填充算法分为种:
当command值为 **ComputedCommand.AUTO** 时,会通过字段名查找计算方式,这里介绍一下如何自定义填充算法。自动填充算法分为种:
- 一种是有参算法,例如MD5算法需要使用到原字段中的值作为参数:
- 一种是有参算法,例如MD5算法需要使用到原字段中的值作为参数:
```java
// 值为MD5,将原本的明文做一次md5加密并重新赋值到字段中
......@@ -64,7 +72,7 @@ private String sortName;
private String userPassword;
```
有参算法,需要实现 **ComputerArgs** 接口,将自动填充算法写到computed中。例如Md5填充算法代码如下:
需要实现 **ComputerArgs** 接口,将自动填充算法写到computed中。例如Md5填充算法代码如下:
```java
public class ComputerMd5 implements ComputerArgs {
......@@ -76,7 +84,33 @@ public class ComputerMd5 implements ComputerArgs {
}
```
- 一种是无参算法,例如DATETIME算法就是一个无参算法,只需要获取当前时间:
- 第二种也是有参算法,主要是为了按照format进行自动填充,例如:
```java
// 值为REFERENCE,refs是一个数组, 将数组中的字段值按照format的规则填充到字段中
@AutoComputed(command = ComputedCommand.REFERENCE, refs = {"name", "age", "gender"}, format = "%s-%s-%s")
private String referenceValue;
```
需要实现 **ComputerFormatArgs** 接口,将自动填充算法写到computed中。例如REFERENCE填充算法如下:
```java
public class ComputerReference implements ComputerFormatArgs {
@Override
public String computed(Object target, String format) {
String result = "";
//核心代码如下,如果format为空则默认以下划线拼接,否则按fromat格式化
if (StringUtils.isEmpty(format)) {
result = StringUtils.joinWith("_", objects);
} else {
result = String.format(format, objects);
}
return result;
}
}
```
- 第三种是无参算法,例如DATETIME算法就是一个无参算法,只需要获取当前时间:
```java
// 值为DATETIME,将当前时间填充到字段中
......@@ -97,7 +131,7 @@ public class ComputerDate implements ComputerNoArgs<Date> {
- 完成算法编写后,还需要将计算类与字段名对应起来。
在service包中新建computed包(推荐),新建一个类,加上 **@Configuration** 注解,在 **@Bean** 注解中的name属性填上字段名。例如字段createId的填充算法是一个无参算法,方法返回类型为 **ComputerNoArgs** ,如果为有参算法,则应该返回 **ComputerArgs**
在service包中新建computed包(推荐),新建一个类,加上 **@Configuration** 注解,在 **@Bean** 注解中的name属性填上字段名。例如字段createId的填充算法是一个无参算法,方法返回类型为 **ComputerNoArgs** ,如果为有参算法,则应该返回 **ComputerArgs** 或者 **ComputerFormatArgs**
```java
@Configuration
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment