2014-12-05 74 views
0

我有懷疑涉及到PropertyPlaceholderConfigurer。以下是我在application-context.xml文件中的配置。根據文檔,它將首先查看{user.home}/conf目錄中的application.properties。如果不存在,那麼它將從classpath加載,這是真的。PropertyPlaceholderConfigurer如何加載屬性文件?

現在我有一個問題,如果一個鍵值不存在於{user.home}/conf目錄的application.properties文件中,但是它存在於classpath的application.properties文件中。那麼它將如何識別和加載該關鍵值?

對於冗長的解釋感到抱歉。

<bean id="propertyPlaceholderConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 
     <property name="locations"> 
      <list> 
       <value>classpath:application.properties</value> 
       <value>file:///${user.home}/conf/application.properties</value> 
      </list> 
     </property> 
+1

如果兩個.properties都可用,則加載所有密鑰。 – 2014-12-05 14:04:38

回答

0

我認爲沒有可能得到該佔位符解決,因爲您正在實例化的同一類是負責解決屬性的負責人。在這種情況下,$ {user.home}不會被解決,因此$ {user.home} /conf/application.properties不會作爲有效的位置到達。

0

如果該屬性不存在,您可以擴展此類PropertyPlaceholderConfigurer並使用您用來擴展該類的bean,這樣您就可以從哪裏加載屬性並擁有控件所有例外。

相關問題