Java枚举类型自动转换神器:enums-spring-boot-starter

发布于:2023-03-31 ⋅ 阅读:(1504) ⋅ 点赞:(1)

大家好!今天我要和大家分享一个非常实用的Java库:enums-spring-boot-starter。这个库能帮助你在数据库操作和接口传参过程中自动转换枚举类型,让你在不同场景中更方便地使用Java枚举类型。

为什么要使用enums-spring-boot-starter?

在日常开发中,我们经常使用枚举类型来表示不同的状态或类型。然而,当我们将枚举类型保存到数据库或在接口传参时,通常需要手动进行转换。这不仅让代码变得繁琐,还容易出错。
enums-spring-boot-starter库的目的就是简化这个过程。它提供了以下功能:

  1. 自动将枚举类型映射为数字类型,以便将其存储在数据库中
  2. 从数据库获取数据时,自动将数字类型装配为相应的枚举类型
  3. 在接口的前后端传参过程中,实现枚举类型与数字类型的自动转换

如何安装enums-spring-boot-starter?

要使用enums-spring-boot-starter,你可以在你的Maven或Gradle项目中添加以下依赖:

Maven

<dependency>
    <groupId>io.gitee.zhucan123</groupId>
    <artifactId>enums-spring-boot-starter</artifactId>
    <version>1.1.8-RELEASE</version>
</dependency>

Gradle

implementation 'io.gitee.zhucan123:enums-spring-boot-starter:1.1.8-RELEASE'

如何使用enums-spring-boot-starter?

首先,在你的枚举类型上添加@EnumAutoConverter和@EnumScan注解,然后实现ExtensionEnum接口。

@Getter
@AllArgsConstructor
@EnumAutoConverter
@EnumScan
public enum OrderBillStateEnum implements ExtensionEnum {
    PENDING_AUDIT(1, "待审核"),
    PART_AUDIT(2, "部分审核通过"),
    NOT_PASS(3, "审核不通过"),
    UNCONFIRMED(5, "未确认"),
    UNDER_COMPLAINT(7, "申诉中"),
    CONFIRMED(9, "已确认");

    private final int code;
    private final String name;
}

示例:使用enums-spring-boot-starter自动转换枚举类型

1. 前端接收参数

前端传递枚举的code值,例如:http://localhost:8080/orders?billState=1

@Data
public class PluginOrderBillQuery {
    @ApiModelProperty("账单审核状态")
    private OrderBillStateEnum billState;
}

2. 数据库映射对象

在实体类中直接使用枚举,enums-spring-boot-starter会自动将枚举转换为code值存储到数据库,读取数据库时将code值转换为枚举。

@Table(name = "plugin_order_bill")
@Entity
@Data
public class PluginOrderBill {
    @Id
    private Long id;

    @Column(name = "bill_state")
    private OrderBillStateEnum billState;
}
  1. 控制器层
    在控制器层中,使用接收到的枚举类型直接查询数据库。

    @RestController
    @RequestMapping("/orders")
    public class OrderController {
     @Autowired
     private OrderService orderService;
    
     @GetMapping
     public List<PluginOrderBill> getOrders(PluginOrderBillQuery query) {
         return orderService.findOrders(query);
     }
    }

    结论
    enums-spring-boot-starter为Java开发人员提供了一种简便的方法来自动转换枚举类型,有效减少了手动转换带来的繁琐与错误。这款库在实际项目中应用广泛,节省了大量时间和精力。如果你还没有尝试过,赶快试试吧!
    感谢阅读,希望你在开发过程中也能受益于enums-spring-boot-starter库。如果你对这个库感兴趣,可以前往Gitee查看更多详情。别忘了点赞 和分享给你的朋友们!

作者:すれ灿卜
链接:https://juejin.cn/post/7215542421542256700
来源:稀土掘金
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。


网站公告

今日签到

点亮在社区的每一天
去签到