类型安全配置不采用在运行时设置的系统属性
Typesafe Config does not take System properties that were set in runtime
我有一个核心库,将其配置设置为系统属性。
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'
这是不可能的还是我错过了什么?
尝试使任何缓存的配置失效,以便获取对系统属性的更改:
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"))
我有一个核心库,将其配置设置为系统属性。
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'
这是不可能的还是我错过了什么?
尝试使任何缓存的配置失效,以便获取对系统属性的更改:
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"))