覆盖Spring中的依赖项属性值

时间:2013-07-12 06:42:51

标签: java spring

在我的Spring项目中,我正在使用Spring开发的依赖项目。此依赖项具有自己的属性文件,并定义了一个指向localhost的属性。现在在我的设置中,我希望此属性指向另一个URL但不指向localhost。我试图使用addFirst属性源方法在我的属性文件中覆盖它,但依赖项仍然加载原始属性值。

ConfigurableEnvironment environment = applicationContext.getEnvironment();
//here i overload the props
environment.getPropertySources().addFirst(
                new ResourcePropertySource("classpath:conf/app.properties")); 
LOG.debug("dependency property: " + applicationContext.getEnvironment().
getProperty("server.hostname")); // here it prints the overloaded value in app.properties

当我打印重载属性时,我得到了重载属性值,但是当程序执行时,它指向localhost。这是覆盖依赖属性的方法吗? Spring版本是3.2

1 个答案:

答案 0 :(得分:0)

关键是,在ProperySources中,最后一个获胜。

(就像在数据库中一样,最后一个写胜利)。

尽量使用add