2011-04-08 113 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