EasyCode
EasyCode copied to clipboard
feat: 从实体类右键生成代码模式下,支持实体类字段【注释标签】的读取,并存放入ext数据中。
从实体类生成代码的模式下,支持读取实体类字段的【注释标签】,格式以 ‘@’ 开头。
用户可以在实体类字段中自定义添加注释标签,并在模板代码中自行使用。
比如可以加个 @controlType 指定字段使用的前端控件类型,@sort 指定字段在前端显示的排序等。
添加的新功能只是把 注释标签 加入到列的 ext 数据中,具体代码模板中如何使用 ext 数据,由用户自行控制。
使用示例如下:
/**
* 客户
*/
@Entity
@Getter
@Setter
public class Client {
/**
* 客户名称
*
* @controlType input
* @sort 1
* @showInDetail
* @showInList
* @required 客户名称不能为空
*
* @testObj {"key1": "testStr", "key2": 123, "key3": true}
* @testTag1 1 2 3 中文 4 5 6
* @testTag2 [1, 2, 3]
*/
private String name;
/**
* 手机
*
* @controlType input
* @sort 2
* @showInDetail
* @showInList false
* @required 手机不能为空
*/
private String phone;
}
列数据中将读到:
ColumnInfo(
obj=null,
name=name,
comment=客户名称,
type=String,
shortType=String,
custom=false,
ext={
testObj={"key1": "testStr", "key2": 123, "key3": true},
controlType=input,
showInList=true,
sort=1,
showInDetail=true,
testTag1=1 2 3 中文 4 5 6,
required=客户名称不能为空,
testTag2=[1, 2, 3]
}
)
ColumnInfo(
obj=null,
name=phone,
comment=手机,
type=String,
shortType=String,
custom=false,
ext={
controlType=input,
showInList=false,
sort=2,
showInDetail=true,
required=手机不能为空
}
)
【注意事项】
1、如未提供注释标签的值,将会默认填充 true 值。如:@showInDetail,在 ext 中显示为:{ "showInDetail": true }
2、默认排除:@param @return 这两个常用方法注释标签,避免误读注释标签。
3、考虑到标签注释值的获取已支持复杂的字符串,且没想到重复标签出现的场景,所以未处理重复标签。出现多个重复标签(如:有多个 @testTag) 将会相互覆盖,只保留一个值。
【PS】
这个功能主要是想补充 ext 数据的新增方式,毕竟在 ext 数据配置页面操作不如直接在注释里写来得方便,当然,如果是从数据库生成的,那是得老老实实在界面里维护了。