必须用到的枚举工具类
- 参考通用枚举 通用枚举
使用背景
spring mvc 接收或者序列化枚举类型时,
默认是根据枚举的名称(string)进行序列化或者反序列化。
但是在实际开发当中,我们一般用枚举代表某一个数值,数据库存储值。
同时我们也希望和前端交互用数值交互,而不是string名称。因此用到这个工具类
支持以下几个组件的反序列化和序列化
- spring convert
@RequestParam
@PathVariable
... - jackson
@ResponseBody - fastjson
JSON.parseObject(...)
代码
- 枚举序列化和反序列化的代码 枚举序列化和反序列化的代码
使用方式
springConverter组件的使用
spring 接收参数为form表单请求时,默认用的converter组件进行转换对象
1 |
|
jackson序列化和反序列化的使用
spring的@RequestBody,@ResponseBody 默认使用jackson进行反序列化和序列化
1 |
|
fastJson的使用
1 | // 序列化 |
总结
我们定义好通用枚举之后,所有枚举实现通用枚举的接口。在定义枚举的序列化实现,然后在定义各自(反)序列化框架的实现
最后我们把各种(反)序列化枚举的实现配置到spring容器中,最终才生效。
这样配置好之后呢,可以直接用枚举当做接收参数和返回参数了。前端交互用的还是数值类型哦。
这样针对老项目重构的时候可以在不影响前端的情况下,后端全部可以改成枚举哦。
数据库枚举的序列化和反序列化-mybatisPlus目前是直接支持的。参考mybatisPlus的文档即可。但是前端交互用数值的话需要配合此代码才行哦
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 老曹的私房站!
评论