【发布时间】:2012-10-10 21:46:03
【问题描述】:
我有一个piece of code,我用它来管理属性已经有一段时间了。我的老板不喜欢这个解决方案,理由是物业管理应该由知名的库来完成,比如 Spring/Guice。这是可以理解的,我正在寻找替代品,但我找不到能够提供我想要的功能的替代品(或者我可能不知道如何正确使用它们)。
我正在寻找的功能是:
-
超级容易在编码期间向类添加新属性
- 无需触摸构造函数,添加专用字段或设置器
- 使用 Java 代码(尽可能)
- 易于添加默认值。如果您只想快速配置某些内容并保持代码正常运行,则无需编辑属性文件
- 可以使用任何类型(可以在框架内定义从String转换)
-
在每个属性的配置加载时运行的自定义验证
- 例如检查文件是否存在,检查定义的转换是否成功等。
- 能够将参数注入最终字段
- 能够自动生成属性文件模板
- 特别是定义描述的能力,最好是在 Java 代码中,然后写入模板
- 能够在运行时以线程安全的方式更新配置
是否有任何库可以为我提供这些功能?
如果我遗漏了一些东西,而这些都可以通过 Spring/Guice 来满足,那么网上有什么好的资源吗?
Example usage of my solution
Sample of generated property file TEMPLATE (you copy and edit this)
【问题讨论】:
-
您的功能请求背后是否有可靠的业务需求?通过属性和 DI 进行配置非常标准,只需选择一个 DI 框架即可。
-
@aikox 好吧,我广泛使用所有功能。如果您可以将我引导到可以提供这里大部分功能的 DI 框架,我就在。
-
我不确定我是否得到了旨在支持的工作流 #5。如果我修改了模板,并想添加其他设置怎么办?那一代是否只打算使用一次?
-
您希望能够将值注入
final字段,并在运行时更新此配置...为什么? -
@DNA 我想将一些值注入到最终字段中,而其他值则可以在运行时更新。
标签: java configuration properties dependency-injection configuration-files