2014-09-02 108 views
0

我有一個Spring引導應用程序,我不想注入屬性。在我們以前的項目中,我們定義在我們context.xml一個PropertyPlaceholderConfigurer一次加載所有依賴模塊的屬性文件:Spring Java配置:PropertyPlaceholderConfigurer的「位置」等效

<bean id="propertyPlaceholderConfigurer" 
     class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 
     <property name="ignoreResourceNotFound" value="true" /> 
     <property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE" /> 
     <property name="locations"> 
      <list> 
       <value>classpath:test.properties</value> 
       <value>classpath*:/META-INF/*.properties</value> 
      </list> 
     </property> 
    </bean> 

現在我正在尋找在Java的配置風格值得選擇。我想我的標註配置類,如下所示:

@PropertySources(value = { @PropertySource("classpath:application.properties"), 
    @PropertySource("classpath*:/META-INF/*.properties") }) 

@PropertySource註釋不喜歡通配符(這是有道理的,因爲它是負責提取單個資源)。

任何想法,提示,解決方案?

+0

。請注意,聲明'PropertyPlaceholderConfigurer'豆和'@ PropertySources'是不等價的。 – 2014-09-02 15:50:26

+1

[classpath-wildcard-in-propertysource]可能重複(http://stackoverflow.com/questions/14389995/classpath-wildcard-in-propertysource)。 – tmarwen 2014-09-02 15:53:54

+0

謝謝你們! – achingfingers 2014-09-02 15:55:23

回答

-1

雅,這是尷尬的PropertySource不支持通配符。上一個問題提出了一個合理的解決方案,我已經成功地使用了它。

classpath wildcard in @PropertySource

+2

您應該投票結束重複。 – 2014-09-02 15:49:48

+0

啊,謝謝Sotirios,我會在將來記住。 – dectarin 2014-09-02 15:56:49