在我的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
答案 0 :(得分:0)
关键是,在ProperySources中,最后一个获胜。
(就像在数据库中一样,最后一个写胜利)。
尽量使用add
。