使用枚举有时候会给我们带来了一些困扰:
前端展示数据,需要将枚举转成用户可读的数据显示。
代码中的枚举类型要存储数据库得转成数值类型。
那么本文介绍一种自动转换方案,大大方便前后端使用枚举类型
我们以用户状态为例,用户有两种状态:禁用和启用
第一步创建统一的枚举基类BaseEnum
第二步创建用户状态类StatusEnum
实现BaseEnum
接口
BaseEnum
主要有三个方法
getCode()
获取枚举的数值如“0、1”;getName()
获取枚举显示值如“禁用、启用” ;getEnumName()
获取枚举的枚举值如“ENABLE、DISABLE”.
第三步创建用户类User
用户状态使用StatusEnum
类
前后端相互转换
当前端查询用户时,我们希望将枚举的三个属性都返回给前端,前端页面显示时取status.name
代码中使用status.enum
或者status.code
为了达到将枚举序列化成一个json对象,我们需要自定义序列化器和反序列化器,以下以SpringBoot自带的Jackson为例:
查询用户
application/json格式传参
对应JAVA代码:
这样很方便的解决了枚举在各个环节的自动转换问题,其它枚举只要实现BaseEnum
接口就能实现全自动转换,前后端用起来也方便了不少。
最后说一句(求关注!别白嫖!)
如果这篇文章对您有所帮助,或者有所启发的话,求一键三连:点赞、转发、在看。
关注公众号:woniuxgg,在公众号中回复:笔记 就可以获得蜗牛为你精心准备的java实战语雀笔记,回复面试、开发手册、有超赞的粉丝福利!