首页 > 解决方案 > 属性文件中的常量

问题描述

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

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

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

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

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

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

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

标签: javaspringdesign-patterns

解决方案


你说得对

属性文件的要点是用于外部化配置

仅当您需要允许此属性可配置为每个客户/环境/执行的不同值时,才将内容放入属性中。即使添加一些很少更改的属性也会使您的属性变得过大和繁琐。因此,如果这些是不打算更改的常量,它们肯定不属于属性。要么使用枚举,要么将它们放入接口或作为抽象类的成员。调用它或类似的东西static publicConstants


推荐阅读