2015-10-04 77 views
1

正如我所看到的,有很多關於Spring已經問到的屬性的問題,但是我想實現的有點不太常見。如何在不同位置正確加載Spring中的多個屬性文件?

讓我們假設我有cp.prop.file.properties在classpath

external.prop.file.path=file:./path/to/external.prop.file.properties 

現在,如果我在春天方面,我會宣佈這樣的事情

<context:property-placeholder location="classpath:cp.prop.file.properties" /> 
<context:property-placeholder location="${external.prop.file.path}" /> 

我想這將無法正常工作。我目前無法檢查。

我相信自己想要達到的目標是相當清楚的。一般來說,我想要有一些屬性是構建依賴性的,不可配置的,有些是可配置的並且是外部化的。後者的路徑是在構建過程中定義的。

+0

先給' 「命令」'屬性你的佔位符配置器。第一個是'order = 1',第二個是'order = 2'? –

+0

*「我認爲它不能正常工作,我目前無法檢查。」*爲什麼不在**後嘗試**,然後呢?克里格 - – kryger

+0

- 也許我太委婉。我99%肯定它不會那樣工作。羅希特耆那教 - 感謝提示我會嘗試 – freefall

回答

0

您可以加載多個屬性文件,下面的語法

<context:property-placeholder 
       location="classpath:a.properties, file:/path/to/myConfigFile.properties" 
       ignore-unresolvable="true"/> 
+0

它不會以我想要的方式工作。請記住,路徑:/ to/file是從第一個文件讀取的屬性,因此必須先解析它。 – freefall

0

從下述溶液中使用的

<context:property-placeholder 
    location="classpath:core-application.properties, 
       classpath:core-services.properties, 
       classpath:core-messages.properties" 
    ignore-unresolvable="true"/> 

<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 
     <property name="locations"> 
      <list> 
       <value>classpath:core-application.properties</value> 
       <value>classpath:core-services.properties</value> 
       <value>classpath:core-messages.properties</value> 
      </list> 
     </property> 
     <property name="ignoreUnresolvablePlaceholders" value="true"/> 
    </bean> 
相關問題