2013-07-12 64 views
0

在我的Spring項目中,我使用了Spring中開發的依賴項目。此依賴項具有自己的屬性文件,並定義了一個指向localhost的屬性。現在在我的設置中,我希望此屬性指向另一個URL,但不是本地主機。我試圖在我的屬性文件中使用addFirst屬性源的方法覆蓋此屬性,但依賴項仍然加載原始屬性值。覆蓋Spring中的依賴項屬性值

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 

當我打印超負荷屬性我得到的重載屬性值,但該程序被執行時,它指向本地主機。這是重寫相關屬性的方式嗎?春季版本是3.2

回答

0

重點是,在ProperySources最後一個勝利。

(就像在數據庫中,最後一個寫入勝者)。

儘量使用簡單的add

+0

在Property Sources實現中是否存在'add'方法。我正在使用Spring 3.2 –

+0

你是對的。嘗試在主應用中再次加載相同的屬性作爲最後一個文件。實際上最後一個有幾乎所有的道具。 –