java - 属性文件中的常量

标签 java spring design-patterns

我的团队是 Spring Boot 新手,大多数成员之前都在开发 J2EE 遗留应用程序。我之前有 Spring Boot 和微服务方面的经验。我的问题是关于他们使用的一种我以前从未见过的模式,我想了解为什么这可能是一个好主意,也可能不是一个好主意。

他们一直在创建多个属性文件,并向这些属性文件添加键值对,这些属性文件使用 @Value 或 ResourceBundle 注入(inject)到对象字段中。

例如,我通常认为像颜色这样的枚举将被添加到属性文件中,与常量相同。

#color.properties
color.r = red
color.b = blue
color.g = green

似乎编写了很多不必要的代码,例如将所有值注入(inject)到一个类中,然后创建一个包含其中值的数组。我们也在努力让这项工作发挥作用。

我认为属性文件的重点是外部化配置。当 Java 为这些东西提供数据类型和结构时,为什么我的团队要这样做?

我想我想要做到这一点的方法是创建带有静态常量字段的枚举和实用程序类。

最佳答案

你说得对

the point of the properties file was for externalized config

仅当您需要允许此属性可针对每个客户/环境/执行使用不同的值进行配置时,才将内容放入属性中。即使添加一些很少更改的属性也会使您的属性变得过大且繁琐。因此,如果这些常量不应该被更改,那么它们绝对属于属性。使用枚举或将它们放入接口(interface)中或作为静态公共(public)成员放入抽象类中。称之为常量或类似的名称

关于java - 属性文件中的常量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56787903/

相关文章:

java - 如果使用Spring和Junit 4,如何编写内部测试类?或者我还能如何构建我的测试?

c++ - 前端/后端设计 : how to absolutely dissociate the back-end from the front-end?

java.lang.ArrayIndexOutOfBoundsException : size=2048 offset=0 byteCount=-1

java - 如何在两个不同的方法中使用相同的变量而不将这些变量设为全局变量?

Spring Boot 数据 JPA : Hibernate Session issue

java - 找不到 Log4j2.xml 但 log4j2-test.xml 是

java - 如何增加一个新类型而不需要修改工厂类?

java - 享元模式中描述的内在状态和外在状态有什么区别?

java - 用户注册与电子邮件验证

java - 我可以使用 KSoap2 将静态 XML 文件作为请求发送吗