通用枚举扫描并自动关联注入

解决了繁琐的配置,让 mybatis 优雅的使用枚举属性!

1、自定义枚举实现 IEnum 接口,申明自动注入为通用枚举转换处理器

枚举属性,必须实现 IEnum 接口如下:

  1. public enum AgeEnum implements IEnum {
  2. ONE(1, "一岁"),
  3. TWO(2, "二岁");
  4. private int value;
  5. private String desc;
  6. AgeEnum(final int value, final String desc) {
  7. this.value = value;
  8. this.desc = desc;
  9. }
  10. @Override
  11. public Serializable getValue() {
  12. return this.value;
  13. }
  14. public String getDesc(){
  15. return this.desc;
  16. }
  17. }

2、配置扫描通用枚举

  • 注意!! spring mvc 配置参考,安装集成 MybatisSqlSessionFactoryBean 枚举包扫描,spring boot 例子配置如下:示例工程:

👉 mybatisplus-spring-boot

配置文件 resources/application.yml

  1. mybatis-plus:
  2. # 支持统配符 * 或者 ; 分割
  3. typeEnumsPackage: com.baomidou.springboot.entity.enums
  4. ....

3.JSON序列化处理

一、Jackson

  1. 1.在需要响应描述字段的get方法上添加@JsonValue注解即可

二、Fastjson

1.全局处理方式

  1. FastJsonConfig config = new FastJsonConfig();
  2. //设置WriteEnumUsingToString
  3. config.setSerializerFeatures(SerializerFeature.WriteEnumUsingToString);
  4. converter.setFastJsonConfig(config);

2.局部处理方式

  1. @JSONField(serialzeFeatures= SerializerFeature.WriteEnumUsingToString)
  2. private UserStatus status;

以上两种方式任选其一,然后在枚举中复写toString方法即可.