我有一个核心库,可以将其配置设置为系统属性。
mail.from = mail@example.com
我想用它们覆盖我的配置,例如:
my.mail.from = "me@example.com"
my.mail.from = ${?mail.from}
这适用于单元测试。在我的Play(2.6)应用程序中它没有。
PropertiesConfiguration.init() // this inits the system properties
info("mail.from: " + sys.props.get("mail.from")) // >> 'mail@example.com' as expected
val config = ConfigFactory.load()
info("my.mail.from: " + config.getString("my.mail.from")) // >> 'me@example.com' instead of 'mail@example.com'
这是不可能的还是我错过了什么?
答案 0 :(得分:4)
尝试使任何缓存的配置无效,以便获取对系统属性的更改:
PropertiesConfiguration.init()
info("mail.from: " + sys.props.get("mail.from"))
ConfigFactory.invalidateCaches()
val config = ConfigFactory.load()
info("my.mail.from: " + config.getString("my.mail.from"))