SystemDictStarter v1.4.5 一种优雅的数据字典文本转换方式
在日常项目开发中,不免都会用到一些数据字典的信息,遇到这种场景通常都是后端把字典的文本转换好一起返回给前端,前端只需要直接展示即可。
一般情况下后端可能需要单独给返回对象创建一个字段来存储对应的字典文本值,然后进行手动的处理,这种方式通常比较繁琐,在字段多的时候会增加更多的工作量。
本项目基于 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 的配置,有使用上诉配置的请增加如下配置:
- 使用注解 DictText#mapValue=YES 配置的请增加 DictText#replace=YES 配置
- 使用全局 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; }

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
MyExcel 3.11.8 版本发布
MyExcel,是一个集导入、导出、加密 Excel 等多项功能的 Java 工具包。 MyExcel 采用声明式语法来构建、读取 Excel,屏蔽 POI 的具体操作细节(对 POI 无感知),以开发常用的技术替代,使得构建(从简单到高度复杂Excel)以及读取Excel变得极为便利,且构建、读取性能极为优异,占用内存极低(具体,请移步参考MyExcel&阿里EasyExcel性能对比)。 如导入: List<ArtCrowd> result = SaxExcelReader.of(ArtCrowd.class) .sheet(0) // 0代表第一个sheet,如果为0,可省略该操作,也可sheet("名称")读取 .rowFilter(row -> row.getRowNum() > 0) // 如无需过滤,可省略该操作,0代表第一行 .beanFilter(ArtCrowd::isDance) // bean过滤 .read(path.toFile()); 本次更新点如下: 模板导出,支持单元格斜线绘制; SaxExcelReader...
- 下一篇
kunlun-admin v1.2.2 发布,昆仑管理系统
昆仑管理系统 v1.2.2发布了! 更新日志 1、关联授权页面逻辑调整; 2、后端 Runner 和 Listener 改造; 3、优化并修复前端及后台若干问题; 系统介绍 昆仑管理系统是一套基于前后端分离架构的后台管理系统。kunlun-web 基于React + Umi(乌米) + Ant Design (蚂蚁金服) 构建开发,提供前端解决方案;kunlun-service 基于 SpringBoot 与 Spring Cloud 构建开发,提供后端基于微服务架构的解决方案。系统通过Apache Shiro与Jwt组件,用token进行数据交互认证,可快速开发并独立进行Docker容器化部署。 使用说明 1. npm安装前端依赖库,并启动kunlun-home-web与kunlun-system-web服务; 2. 安装并启动PostgreSQL; 3. 安装并启动RabbitMQ和Redis; 4. 启动注册中心服务kunlun-register-service; 5. 依次启动kunlun-gateway-service、kunlun-basedata-service与kunl...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Hadoop3单机部署,实现最简伪集群
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- MySQL8.0.19开启GTID主从同步CentOS8
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- CentOS7,CentOS8安装Elasticsearch6.8.6
- CentOS7,8上快速安装Gitea,搭建Git服务器
- CentOS关闭SELinux安全模块
- CentOS8编译安装MySQL8.0.19