SpringBoot返回枚举对象中的所有属性以对象的形式返回(一个@JSONType解决)

简介: SpringBoot返回枚举对象中的所有属性以对象的形式返回(一个@JSONType解决)

SpringBoot返回枚举对象中的所有属性以对象的形式返回(一个@JSONType解决)


一、前言

最近小编在开发中遇到个问题,就是关于枚举方面的使用。一些固定不变的数据我们可以通过枚举来定义,减少对数据库的查询。是一种常见的开发技巧!


常见场景的需求是:通过某一个属性获取对应的枚举属性的另一个值;还有就是常量枚举,比如一下统一返回状态和编码!


小编的需求是把枚举中的所有属性都取出来,转成实体类那种返回给前端!


最简单的解决就是拿到所有的然后便利加到新的集合里,这样还需要定义一个实体类来接收转一下!

这样有点麻烦,小编也是无意发现了,项目中有以前大佬留下来的一个注解@JSONType(serializeEnumAsJavaBean = true),一加上只需要我们使用枚举.values()即可直接帮助我们返回了,注解为alibaba.fastjson。


二、导入依赖

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
</dependency>


三、枚举类

import com.alibaba.fastjson.annotation.JSONType;
/**
 * @author wangzhenjun
 * @date 2022/3/23 10:05
 */
@JSONType(serializeEnumAsJavaBean = true)
public enum SeasonEnum {
    USER_SCOPE("001","春"),
    DEPT_SCOPE("002","夏"),
    ORG_SCOPE("003","秋"),
    ALLIANCE_SCOPE("004","冬");
    private String code;
    private String name;
    SeasonEnum(String code, String name) {
        this.code = code;
        this.name = name;
    }
    public String getCode() {
        return code;
    }
    public String getName() {
        return name;
    }
}


四、controller处理

@GetMapping("/listSeason")
public SeasonEnum[] listSeason(){
    return SeasonEnum.values();
}


五、结果展示

[
    {
        "code": "001",
        "name": "春"
    },
    {
        "code": "002",
        "name": "夏"
    },
    {
        "code": "003",
        "name": "秋"
    },
    {
        "code": "004",
        "name": "冬"
    }
]


六、总结

这样就完美完成枚举转实体类了,而且还没有新增实体类,一个注解解决哈!!看到这里了,对你有用帮小编点个赞呗!!!

相关文章
|
4月前
|
Java 测试技术 数据库
Spring Boot中的项目属性配置
本节课主要讲解了 Spring Boot 中如何在业务代码中读取相关配置,包括单一配置和多个配置项,在微服务中,这种情况非常常见,往往会有很多其他微服务需要调用,所以封装一个配置类来接收这些配置是个很好的处理方式。除此之外,例如数据库相关的连接参数等等,也可以放到一个配置类中,其他遇到类似的场景,都可以这么处理。最后介绍了开发环境和生产环境配置的快速切换方式,省去了项目部署时,诸多配置信息的修改。
|
27天前
|
druid Java Maven
|
1月前
|
Java 应用服务中间件 Maven
SpringBoot Maven 项目打包的艺术--主清单属性缺失与NoClassDefFoundError的优雅解决方案
SpringBoot Maven 项目打包的艺术--主清单属性缺失与NoClassDefFoundError的优雅解决方案
311 0
|
3月前
|
缓存 Java 数据库连接
Spring Boot 资源文件属性配置,紧跟技术热点,为你的应用注入灵动活力!
【8月更文挑战第29天】在Spring Boot开发中,资源文件属性配置至关重要,它让开发者能灵活定制应用行为而不改动代码,极大提升了可维护性和扩展性。Spring Boot支持多种配置文件类型,如`application.properties`和`application.yml`,分别位于项目的resources目录下。`.properties`文件采用键值对形式,而`yml`文件则具有更清晰的层次结构,适合复杂配置。此外,Spring Boot还支持占位符引用和其他外部来源的属性值,便于不同环境下覆盖默认配置。通过合理配置,应用能快速适应各种环境与需求变化。
43 0
|
3月前
|
Java Spring 容器
Java SpringBoot 中,动态执行 bean 对象中的方法
Java SpringBoot 中,动态执行 bean 对象中的方法
40 0
|
5月前
|
JavaScript Java 测试技术
基于springboot+vue.js+uniapp小程序的社区帮扶对象管理系统附带文章源码部署视频讲解等
基于springboot+vue.js+uniapp小程序的社区帮扶对象管理系统附带文章源码部署视频讲解等
35 4
|
5月前
|
Java 关系型数据库 MySQL
SpringBoot系列教程之事务传递属性
SpringBoot系列教程之事务传递属性
|
6月前
|
Java Maven
springboot jar包启动提示没有主清单属性
springboot jar包启动提示没有主清单属性
200 1
|
6月前
|
Java
SpringBoot 项目启动初始化一个Map对象到内存
SpringBoot 项目启动初始化一个Map对象到内存
138 1
|
6月前
|
Java 开发者 Spring
Spring Boot中的资源文件属性配置
【4月更文挑战第28天】在Spring Boot应用程序中,配置文件是管理应用程序行为的重要组成部分。资源文件属性配置允许开发者在不重新编译代码的情况下,对应用程序进行灵活地配置和调整。本篇博客将介绍Spring Boot中资源文件属性配置的基本概念,并通过实际示例展示如何利用这一功能。
63 1