SystemDictStarter v1.4.5 一种优雅的数据字典文本转换方式

栏目: 软件资讯 · 发布时间: 4年前

内容简介:在日常项目开发中,不免都会用到一些数据字典的信息,遇到这种场景通常都是后端把字典的文本转换好一起返回给前端,前端只需要直接展示即可。 一般情况下后端可能需要单独给返回对象创建一个字段来存储对应的字典...

在日常项目开发中,不免都会用到一些数据字典的信息,遇到这种场景通常都是后端把字典的文本转换好一起返回给前端,前端只需要直接展示即可。

一般情况下后端可能需要单独给返回对象创建一个字段来存储对应的字典文本值,然后进行手动的处理,这种方式通常比较繁琐,在字段多的时候会增加更多的工作量。

本项目基于 Jackson 的自定义注解功能实现了这一自动转换过程,不需要在对象中定义存放字典文本的字段,只需要在字段上使用 @DictText 注解,Jackson序列化的时候即可自动把字典值转换成字典文本。

更新日志

功能代码变更

  • feat: 增加一个 DictText#replace 配置字段,标记是否用字典文本值替换字典值(在原字段上输出字典文本值)#I4GT0N:希望增加字典替换功能
  • feat: 增加一个 RefreshDictTypeEvent 事件刷新一个完整的字典类型信息 github#2
  • fix: 修复刷新单个字典值文本信息时文本信息未同步到字典类型对象里面的问题 github#2
  • feat: RefreshDictValueEvent 事件增加 updateDictType 字段决定在更新单个字典文本值时是否维护对应字典类型对象的字典值列表信息

涵盖 1.4.4.X 变更

  • feat: 在刷新字典时当 DictValueVo.title == null 被视为删除相应的字典文本信息
  • fix: 修复 SpringBoot 2.4.0 以下版本无法启动问题

配置文件变更:

  • 增加一个 system.dict.replace-value 配置项(在原字典值字段上把字典值替换成字典文本输出)

由于引入了 DictText#replace 配置,会影响使用 DictText#mapValue=YES 和 system.dict.map-value=true 的配置,有使用上诉配置的请增加如下配置:

  1. 使用注解 DictText#mapValue=YES 配置的请增加 DictText#replace=YES 配置
  2. 使用全局 system.dict.map-value=true 配置的请增加 system.dict.replace-value=true 配置

 

项目地址

详细使用文档

https://gitee.com/houkunlin/system-dict-starter/blob/main/usage.md

注解简单使用示例

// 注解的简单使用
@Data
@AllArgsConstructor
class Bean {
    // {"userType":"1","userTypeText":"普通用户"}
    @DictText("PeopleType")
    private String userType = "1";
}

// 自定义字典文本输出字段
@Data
@AllArgsConstructor
class Bean {
    // {"userType":"1","typeText":"普通用户"}
    @DictText(value = "PeopleType", fieldName = "typeText")
    private String userType = "1";
}

// 使用分隔符来存储多个字典值
@Data
@AllArgsConstructor
class Bean {
    // {"userType":"0,1","userTypeText":"系统管理、普通用户"}
    @DictText(value = "PeopleType", array = @Array(split = ","))
    private String userType = "0,1";
}

// 使用集合来存储多个字典值
@Data
@AllArgsConstructor
class Bean {
     // {"userType":["0","1"],"userTypeText":"系统管理、普通用户"}
    @DictText("PeopleType")
    private List<String> userType = Arrays.asList("0", "1");
}

// 把集合的字典文本转换成数组形式
@Data
@AllArgsConstructor
class Bean {
    // {"userType":["0","1"],"userTypeText":["系统管理","普通用户"]}
    @DictText(value = "PeopleType", array = @Array(toText = false))
    private List<String> userType = Arrays.asList("0", "1");
}

// 转换成 Map 形式在原字段上输出
@Data
@AllArgsConstructor
class Bean {
    // {"userType":{"text":"普通用户","value":"1"}}
    @DictText(value = "PeopleType", mapValue = DictText.Type.YES, replace = DictText.Type.YES)
    private String userType;
}

以上所述就是小编给大家介绍的《SystemDictStarter v1.4.5 一种优雅的数据字典文本转换方式》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

引爆点

引爆点

[美] 马尔科姆·格拉德威尔 / 钱清、覃爱冬 / 中信出版社 / 2009-8 / 27.00元

我们的世界看上去很坚固,但在《纽约客》怪才格拉德威尔的眼里,只要你找到那个点,轻轻一触,这个世界就会动起来:一位满意而归的顾客能让新开张的餐馆座无虚席,一位涂鸦爱好者能在地铁掀起犯罪浪潮,一位精明小伙传递的信息拉开了美国独立战争的序幕——这个看起来不起眼的点,却是任何人都不能忽视的引爆点。 《引爆点》是一本谈论怎样让产品发起流行潮的专门性著作。书中将产品爆发流行的现象归因为三种模式:个别人物......一起来看看 《引爆点》 这本书的介绍吧!

URL 编码/解码
URL 编码/解码

URL 编码/解码

XML、JSON 在线转换
XML、JSON 在线转换

在线XML、JSON转换工具

html转js在线工具
html转js在线工具

html转js在线工具