使用 application.properties 在 Spring 中配置枚举

2024-02-02

我有以下枚举:

public enum MyEnum {
    NAME("Name", "Good", 100),
    FAME("Fame", "Bad", 200);

    private String lowerCase;
    private String atitude;
    private long someNumber;

    MyEnum(String lowerCase, String atitude, long someNumber) {
        this.lowerCase = lowerCase;
        this.atitude = atitude;
        this.someNumber = someNumber;
    }
}

我想使用 application.properties 文件为枚举的两个实例设置不同的 someNumber 变量。 这是否可能,如果不可能,我应该使用抽象类/接口进行抽象将其分成两个类吗?


那么您可以执行以下操作:

  1. 创建一个新类:我的枚举属性

    @ConfigurationProperties(prefix = "enumProperties")
    @Getter
    public class MyEnumProperties {
    
        private Map<String, Long> enumMapping;
    
    }
    
  2. 通过以下方式为您的 SpringBootApplication/任何 Spring Config 启用 ConfigurationProperties

    @EnableConfigurationProperties(value = MyEnumProperties.class)
    
  3. 现在添加您的号码应用程序属性像这样的文件:

    enumProperties.enumMapping.NAME=123
    enumProperties.enumMapping.FAME=456
    
  4. 在您的应用程序代码中自动装配您的属性,如下所示:

    @Autowired
    private MyEnumProperties properties;
    
  5. 现在这里是one way获取 id:

    properties.getEnumMapping().get(MyEnum.NAME.name()); //should return 123
    

您可以通过这种方式为每个枚举值获取您定义的值application.properties

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 application.properties 在 Spring 中配置枚举 的相关文章

随机推荐

  • Rails + Amazon RDS:延迟问题

    我有一个应用程序 其数据库正在迁移到亚马逊RDS 由于 RDS 和我们的服务器之间的查询延迟 例如仅由于查询而导致加载时间长达 30 秒 我的性能显着下降 没有显式缓存 并且请求可以进一步优化 但这仍然比本地数据库慢 10 倍以上 这种业绩
  • 使用 gorilla/mux URL 参数的函数的单元测试

    TLDR gorilla mux 过去不提供设置 URL 变量的可能性 现在确实如此 这就是为什么第二高得票数的答案在很长一段时间内都是正确的答案 原始问题如下 这就是我想做的 main go package main import fmt
  • html - 像链接一样的表格行

    我无法将表格行设置为某些内容的链接 我只能使用 css 和 html 我尝试了从 div in row 到其他东西的不同操作 但仍然无法使其工作 您有两种方法可以做到这一点 使用 JavaScript tr 使用锚点 tr td a hre
  • C++ 中线程的简单示例

    这个问题的答案是社区努力 help privileges edit community wiki 编辑现有答案以改进这篇文章 目前不接受新的答案或互动 有人可以发布一个在 C 中启动两个 面向对象 线程的简单示例吗 我正在寻找实际的 C 线
  • 如何为tomcat maven插件添加存储库

    如何包含找到的 tomcat maven 插件的存储库here http tomcat apache org maven plugin 2 0 SNAPSHOT source repository html 我在中央 Maven 存储库中找
  • 将 JSON 反序列化为 Java 枚举

    我在 Android 上的 Java 中有以下枚举 我希望能够将传入的 JSON 字符串 对象中的整数反序列化为该枚举类型 我在 Jackson 和 GSON 上受到了关注 但在我正在使用的 JSON org 包上没有得到任何关注 有没有简
  • FParsec 在可选解析器上失败

    我目前正在学习 FParsec 库 但遇到了一个问题 当我想解析一个可选字符串并随后继续正常解析时 FParsec 将在可选解析器上返回致命错误 而不是返回None正如我所期望的 下面的工作代码示例说明了我的观点 open System o
  • Apache Beam:如何同时创建许多经历相同 PTransform 的 PCollection?

    提前致谢 问题 我在谷歌云上有很多文件 对于每个文件我都必须 获取文件 对每个文件进行一系列 Google Cloud Storage API 调用以对其进行索引 例如 name blob name size blob size unzip
  • Ant 构建失败,没有可见错误

    编辑 我最终在 Eclipse 中设置了整个项目并能够构建它 我不确定为什么会出现这个问题 希望我永远不需要找出答案 我遇到一个问题 我的构建报告 构建失败 但没有报告任何错误 我正在构建一个包含大量旧代码的大型应用程序 现在我很乐意修改这
  • select * 的使用是否合理?

    我一直向我的开发人员宣讲SELECT 是邪恶的 应该像瘟疫一样避免 有没有什么情况可以证明它是合理的 我不是在谈论COUNT 大多数优化器都能弄清楚 Edit 我说的是生产代码 我看到的关于这种不良做法的一个很好的例子是一个遗留的 asp
  • 我们可以通过jmeter.bat和ApacheJMeter.jar打开JMeter。有什么不同?

    我们可以通过以下方式打开JMeterjmeter bat and ApacheJMeter jar 它们之间有什么区别 ApacheJMeter jar 文件是一个可执行 jar 因此如果它与 java 应用程序关联 则可以通过在 wind
  • 当组合框获得焦点时展开组合框及其项目

    每当组合框获得焦点时 我想扩展组合框的高度 我使用以下代码来扩展组合框的高度
  • 如何在Windows上安装PyQt5?

    当我尝试使用命令在 Windows 上安装 PyQt5 时 python configure py 我收到此错误 Error Make sure you have a working Qt qmake on your PATH 我从 得到了
  • 如何使用volley库解析android中的嵌套json数组

    我以下面的格式嵌套了 json 数组 我正在使用 volley 库进行 JSON 解析 City name Mumbai Mumbai area andheri diler DName yuvraj area jogeshwari area
  • 找不到适合我的班级的编解码器

    我有一个名为 Signal 的简单类 类如下所示 public class Signal private String id private Date timestamp public String getId return id publ
  • 在 Windows 服务中运行 powershell 脚本

    我有一个运行良好的 powershell 脚本 我在 power shelle 命令行中调用此脚本 PS C gt myscript ps1 var1 variable1 var2 variable2 我需要使用愚蠢的 sc create
  • MySQL存储过程动态更改表名

    我想动态更改 sql 查询中表的名称 例如我有下一个存储过程 CREATE PROCEDURE NewProc IN tableName varchar 64 IN message text BEGIN INSERT INTO tableN
  • Firebase Admin Java SDK 不执行任何操作

    我已经使用以下命令设置了 firebase admin SDKthis https firebase google com docs database admin start guide 所以我用以下方式初始化它 InputStream r
  • 在 C#.net 应用程序中发送短信和 ussd [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 在 C net 应用程序中使用 sms 和 ussd 服务的好库是什么 我目前正在使用这个http www smsco it tomcat
  • 使用 application.properties 在 Spring 中配置枚举

    我有以下枚举 public enum MyEnum NAME Name Good 100 FAME Fame Bad 200 private String lowerCase private String atitude private l