2011-04-08 127 views
12

我在applicationContext.xml中進行以下配置:春天 - 檢索屬性值文件

<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 
    <property name="locations"> 
     <list> 
     <value>classpath:app.properties</value> 
     </list> 
    </property> 
</bean> 

現在,在我的java類,我怎樣才能從文件中讀取app.properties的價值觀?

回答

9

實際上,PropertyPlaceholderConfigurer對於使用屬性爲spring上下文注入值很有用。

示例XML上下文定義:

<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
    <property name="driverClassName"><value>${driver}</value></property> 
    <property name="url"><value>jdbc:${dbname}</value></property> 
</bean>` 

屬性文件的例子:

driver=com.mysql.jdbc.Driver 
dbname=mysql:mydb 

或者你可以創建豆狀

<bean name="myBean" value="${some.property.key}" /> 

,然後注入這個bean到類

+1

是的,您可以將' Marcin 2011-04-08 09:45:41

+1

我如何從'PropertyPlaceholderConfigurer'獲取屬性值?我沒有在文檔中找到任何有用的東西。 – Betlista 2013-07-03 12:24:30

24

使用Spring 3.0,您可以使用@Value註釋。

@Component 
class MyComponent { 

    @Value("${valueKey}") 
    private String valueFromPropertyFile; 
} 
+0

謝謝,我正在考慮一個解決方案,我們可以從ClassPathApplicationContext中檢索值(不使用註釋)。是否可以將一個「id」分配給PropertyPlaceHolderConfigurer bean,然後從bean中檢索值? – 2011-04-08 09:43:26

+0

@請參閱Marcin的答案 – Ralph 2011-04-08 11:03:52