我的团队是 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/