我希望在通过XML配置刷新上下文之前将PropertySource
添加到Spring Environment
。在上下文刷新之前手动添加@PropertySource:配置环境
Java的配置方式做到这一点是:
@Configuration
@PropertySource("classpath:....")
public ConfigStuff {
// config
}
和猜测神奇地@PropertySource
将上下文刷新/初始化之前进行处理。
但是我想做一些更加动态的东西,而不仅仅是从classpath加载。
我知道如何配置Environment
前上下文刷新的唯一途径是实现ApplicationContextInitializer<ConfigurableApplicationContext>
和寄存器它。
我强调寄存器部分,因为这需要通过servlet上下文告诉您的环境关于上下文初始值设定项和/或在单元测试的情况下为每个单元测试添加@ContextConfiguration(value="this I don't mind", initializers="this I don't want to specify")
。
我宁愿我的自定义初始化程序或真正在我的情况下自定义PropertySource通过应用程序上下文xml文件在正确的时间加载,就像@PropertySource
似乎工作。
此属性来源是否与占位符配置器一起使用?你可以用这个bean指定它吗? – 2015-01-20 23:27:09
不可以,因为PropertyPlaceholder(包括旧的和新的)不会实际更改'Environment'。我希望在占位符之前将属性添加到环境中。 – 2015-01-20 23:32:11
看到这个:http://stackoverflow.com/questions/14416005/spring-environment-property-source-configuration – 2015-01-20 23:34:05