• 在枚举类中“优雅地”使用枚举处理器


    使用枚举类的一大好处就是,代码易懂,方便自己或他人维护。如,枚举状态、异常等。

    下面有两个类(枚举类和实体类):

    1. package com.zhang.enums;
    2. import lombok.Getter;
    3. /**
    4. * @Author lgz
    5. * @Description
    6. * @Date 2023/9/30.
    7. */
    8. @Getter
    9. public enum GlobalEnums {
    10. NORMAL(0,"正常"),
    11. FROZEN(1,"已删除"),
    12. ;
    13. // @EnumValue
    14. // 这个注解,相当于告诉mp,这个字段对应数据库的字段,往数据库中写
    15. private final int number;
    16. private final String description;
    17. GlobalEnums(int number, String description) {
    18. this.number = number;
    19. this.description = description;
    20. }
    21. }

    Animal类中有一个用户状态字段:

    1. package com.zhang.entity;
    2. @Data
    3. public class Animal implements Serializable{
    4. // 其余字段...
    5. @ApiModelProperty(value = "删除状态(0-正常,1-已删除,2-已冻结)")
    6. private Integer delFlag;
    7. }

    应用如下:

    第一步:把字段的类型改成我们的enum类,如下:

    1. package com.zhang.entity;
    2. @Data
    3. public class Animal implements Serializable{
    4. // 其余字段...
    5. @ApiModelProperty(value = "删除状态(0-正常,1-已删除)")
    6. private GlobalEnums delFlag;
    7. }

     第二步:在枚举类中,在对应的字段是添加注解@EnumValue、 @JsonValue,如下:

    1. package com.zhang.enums;
    2. import com.baomidou.mybatisplus.annotation.EnumValue;
    3. import com.fasterxml.jackson.annotation.JsonValue;
    4. import lombok.Getter;
    5. /**
    6. * @Author lgz
    7. * @Description
    8. * @Date 2023/9/30.
    9. */
    10. @Getter
    11. public enum GlobalEnums {
    12. NORMAL(0,"正常"),
    13. FROZEN(1,"已删除"),
    14. ;
    15. @EnumValue
    16. // @EnumValue相当于告诉mp,这个字段对应数据库的字段,往数据库中写
    17. private final int number;
    18. @JsonValue
    19. // @JsonValue加在对应的字段是会显示对应的信息,
    20. // 比如,如果加到“number”上就返回个数字给前端,
    21. // 加到“description"上就返回”字符串“,
    22. // 如果不使用这个注解就返回“NORMAL”或“FROZEN”给前端。
    23. private final String description;
    24. GlobalEnums(int number, String description) {
    25. this.number = number;
    26. this.description = description;
    27. }
    28. }

    第三步:在properties或者yml文件中添加如下配置:

    mybatis-plus.configuration.default-enum-type-handler=com.baomidou.mybatisplus.extension.handlers.MybatisEnumTypeHandler

     第四步:测试:

    1. @GetMapping(value = "/listOfAll")
    2. public Result listOfAll() {
    3. return Result.OK(animalService.listAnimals());
    4. }

  • 相关阅读:
    【C#】Winform实现轮播图
    【pen200-lab】10.11.1.14
    大语言模型开发各个阶段的评估方法(未完)
    基于单片机的太阳能热水器控制系统设计与仿真
    企业如何通过媒体宣传扩大自身影响力
    【青书学堂】2023年第二学期 PhotoShop基础与应用(高起专) 作业
    【App自动化测试】(七)移动端自动化中常见控件交互方法
    搭建服务器及跨域处理
    入门安全测试?从渗透测试开始做起....
    云原生|kubernetes|多集群管理之kubeconfig文件配置和使用(定义,使用方法,合并管理多集群)
  • 原文地址:https://blog.csdn.net/m0_59259076/article/details/133432972