我正在尝试为我的属性实现一个特定于层的回退系统。
我知道像Spring这样的高级框架已经内置了对这一点的支持,但是我使用的是更简单的sparkjava框架。
src/
main/
resources/
properties/
dev/
|- application.properties
|- ValidationMessages.properties
|- log4j.properties
prod/
|- application.properties
|- ValidationMessages.properties
|- log4j.properties
test/
|- application.properties
|- ValidationMessages.properties
|- log4j.properties
application.properties
ValidationMessages.properties
log4j.properties
我希望物业来源如下。假设我有一个系统配置
APP.TIER
这让我在运行时知道当前层是什么(
test
,
dev
,
prod
等…)
-
任何顶级“共享”文件(例如。
properties/application.properties
)应适用于所有层
-
任何特定于层的属性(例如。
properties/${APP.TIER}/application.properties
)应该覆盖公共值
main()
example
). 我还可以控制加载它们的顺序,以便确保手动应用上述回退逻辑。
ValidationMessages.properties
由休眠或
log4j.properties
由log4j使用)我无法控制如何加载属性。
有没有一个通用的框架来支持这种类型的财产来源?我知道maven支持概要文件和过滤,但这意味着我必须为每一层构建一个单独的JAR文件,这似乎不是很好的做法。