SystemDictStarter v1.4.4,一种优雅的数据字典文本转换方式
在日常项目开发中,不免都会用到一些数据字典的信息,遇到这种场景通常都是后端把字典的文本转换好一起返回给前端,前端只需要直接展示即可。
一般情况下后端可能需要单独给返回对象创建一个字段来存储对应的字典文本值,然后进行手动的处理,这种方式通常比较繁琐,在字段多的时候会增加更多的工作量。
本项目基于 Jackson 的自定义注解功能实现了这一自动转换过程,不需要在对象中定义存放字典文本的字段,只需要在字段上使用 @DictText 注解,Jackson序列化的时候即可自动把字典值转换成字典文本。
更新日志
功能代码变更
- feat: 增加一个
RefreshDictValueEvent
事件可以刷新单个字典文本信息 - feat: 增加一个刷新字典的端点:
dictRefresh
- feat: 增加使用 Redis 的发布/订阅 功能来处理字典刷新事件通知配置(需要设定配置文件来启用)
- refactor: 修改系统字典端点ID
dictSystem
解决系统字典端点控制台日志警告问题 - refactor: MQ通知其他协同系统刷新字典默认未启用
配置文件变更:
- 移除
system.dict.mq-header-source-key
配置项 - 增加
system.dict.mq-type
配置项选择性启用 RefreshDictEvent 事件通知其他系统刷新字典- 可选值:
none
不启用(默认),amqp
使用 RabbitMQ,redis
使用 Redis 的发布/订阅功能
- 可选值:
- 更改
system.dict.refresh-dict-interval
属性类型为Duration
类型,默认值未改变
涵盖 1.4.3.X 变更
项目地址
详细使用文档
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) private String userType; }

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
适配Windows11 微软推出全新设计的Defender预览版:差评如潮
前几天德国杀软小红伞的国内总代退出的消息引发网友热议,不少网友都觉得没必要花钱装杀毒软件了,除了各种免费好用的杀软之外,微软Win系统自带的Defender也够用了。现在Win11上,微软也推出了新版Defender杀软,不过开头似乎不太好。 Win11系统发布之后,微软最近一直在忙着修改自带的应用,UI设计全面适配Win11,Defender杀软是最新的一个,现在也在Windows商店上架了Defender Preview预览版。 这本来是好事,大家能提前体验下新版的表现,然而事情的发展好像不对劲,新版Defender不仅界面大改,而且要求微软账号登陆,然而国内用户登录之后又说没授权,不能测试。 从网友的信息来看,Defender上架之后遭到了大量差评,评分最低达到了1.7分,很多参与测试的都是1星,以示不满。 不过刚刚下载验证了下,确实是不能测试,没有内容,但是Win11商店的评分也没了,变成了空白,跟网友反馈的1.7分不一样,不知道微软是不是清空了这部分的评论。 鸿蒙官方战略合作共建――HarmonyOS技术社区 【责任编辑:赵宁宁 TEL:(010)68476606】
- 下一篇
CMake 3.21.4 发布,开源构建系统
CMake 3.21.4 现已发布。CMake 是一个跨平台的自动化构建系统,它使用一个名为 CMakeLists.txt 的文件来描述构建过程,可以产生标准的构建文件,如 Unix 的 Makefile 或 Windows Visual C++ 的 projects/workspaces 。文件 CMakeLists.txt 需要手工编写,也可以通过编写脚本进行半自动的生成。 CMake 3.21.4中的一些变更内容有: Tests/RunCMake/Autogen:测试CMP0111 behavior cmQtAutoGenInitializer:支持IMPLIB-only imported targets Tests:为 Xcode 13.0 修复 RunCMake.XcodeProject XcodeIOSInstallCombined cases gitlab-ci:更新 macOS jobs 以使用 Xcode 13.0 bootstrap:启用 cmake_language 命令以支持 Qt 6.2 的 cmake-gui ci:启用 CTest.Update{CVS,S...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- CentOS7编译安装Gcc9.2.0,解决mysql等软件编译问题
- Docker安装Oracle12C,快速搭建Oracle学习环境
- CentOS6,7,8上安装Nginx,支持https2.0的开启
- Linux系统CentOS6、CentOS7手动修改IP地址
- CentOS7设置SWAP分区,小内存服务器的救世主
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Hadoop3单机部署,实现最简伪集群
- CentOS7,CentOS8安装Elasticsearch6.8.6
- SpringBoot2配置默认Tomcat设置,开启更多高级功能