枚举序列化和反序列化的代码
在java或各种框架中,[反]序列化对枚举类型默认一般都是用的枚举的名称。如果代码有魔法值,我们想改成枚举类型。但我们在改造、重构后端的时候不想对前端或者第三方有影响,可以用到此方法。
必须用到的枚举工具类
参考通用枚举 通用枚举所有的枚举想要实现(反)序列化比较要用到通用枚举,实现通用枚举的接口即可
代码(最初版本)1.可反序列化的枚举
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768/** * 可反序列化的枚举 */public enum DeserializableEnum { // DBEnum是MybatisPlus枚举的adapter,增加了getDoc的方法。MybatisPlus是直接支持数据库[反]序列化的。但是还不支持和前端的[反]序列化的交互,所以在此配置即可。 DB_Enum(DBEnum.class, DBEnum::getVal ...
mvc枚举序列化和反序列化的配置
必须用到的枚举工具类
参考通用枚举 通用枚举
使用背景spring mvc 接收或者序列化枚举类型时,
默认是根据枚举的名称(string)进行序列化或者反序列化。但是在实际开发当中,我们一般用枚举代表某一个数值,数据库存储值。
同时我们也希望和前端交互用数值交互,而不是string名称。因此用到这个工具类支持以下几个组件的反序列化和序列化
spring convert@RequestParam@PathVariable...
jackson@ResponseBody
fastjsonJSON.parseObject(...)
代码
枚举序列化和反序列化的代码 枚举序列化和反序列化的代码
使用方式springConverter组件的使用spring 接收参数为form表单请求时,默认用的converter组件进行转换对象
12345678@Configurationpublic class AddEnumConverter implements WebMvcConfigurer { @Override public void addFormatters(For ...
业务开发如何优雅的编写代码
背景我们开发人员,基本都是从搬砖的码农做起,但也有非常优秀的人,一直在做中间件或其他底层通用的逻辑。显然,我们大多数都不够优秀。
那针对业务开发的我们也需要提升自己的技能,而不是每天的CURD,为了提升我们自己,所以在我们的日常开发工作中不仅仅完成任务作为目标,至少还有一些目标之外的思维,如
代码阅读性高吗?
代码便于维护或协作吗?
代码会不会冗余?
怎样用更精简的方法实现它呢?
自己有没有重复造轮子呢?
...
如果缺少了这些思维的话,那你适合做管理层。本文是个总结文,就拿我常在开发中用到的技术展开交流。需要读者点开其他文章依次观看😂
springboot + mvc + mybatisPlus + dubbo + Saas业务
定义通用枚举
通用枚举避免魔法值、统一枚举的获取方式
springMvc枚举(反)序列化配置定义好通用枚举之后也要配置好(反)序列化,mybatisPlus也支持枚举,结合起来。项目当中能够完全避免魔法值的产生
定义一个获取当前环境的枚举的工具类这个很有必要,在复杂业务的情况下,不同业务,不同环境下逻辑也不一样。比如说swagger不能在线 ...