在运行时从属性文件中读取值

时间:2011-04-14 15:05:01

标签: spring properties

我想根据属性file.how的请求获取特定值吗?

我有以下spring配置。我想根据请求设置Exprops的值,并从属性文件中获取相应的值

<bean id="Prop" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="location">
        <value>classpath:ErrorMessage.properties</value>
    </property>
</bean>

<bean id="PropertiesBean" class="com.util.PropertiesUtil">
    <property name="Exprops" value="${EXampleExceptiion}"></property>
</bean>

3 个答案:

答案 0 :(得分:10)

使用PropertiesFactoryBean在Bean中注入Properties

<bean id="myPropertiesBean"
  class="org.springframework.beans.factory.config.PropertiesFactoryBean">
  <property name="location" value="classpath:ErrorMessage.properties"/>
</bean>

这提供了一个Properties对象/ Bean,可以在任何Bean(myPropertiesBean)中以<property name="x" ref="myPropertiesBean"/>的名称注入。

另外Spring提供了util命名空间(自Spring 2.5起): 在那里,您可以将PropertyFactoryBean定义写得更短:

<util:properties id="myPropertiesBean"
 location="classpath:ErrorMessage.properties"/>

@see Spring Reference Chapter C.2.2.3.

答案 1 :(得分:1)

所有使用以下内容以编程方式执行此操作

XmlBeanFactory factory = new XmlBeanFactory(new FileSystemResource("beans.xml"));
PropertyPlaceholderConfigurer cfg = new PropertyPlaceholderConfigurer();
cfg.setLocation(new FileSystemResource("jdbc.properties"));
cfg.postProcessBeanFactory(factory);

答案 2 :(得分:0)

<util:properties id="" location="location of prop file" />

此返回java.util.Properties对象