如何将属性文件中的数据加载到bean属性值中?

问题描述 投票:2回答:3

我正在关注以下文章。

http://www.mkyong.com/spring/spring-quartz-scheduler-example/

一切正常。

<bean id="simpleTrigger"

    class="org.springframework.scheduling.quartz.SimpleTriggerBean">

    <property name="jobDetail" ref="runMeJob" />
    <property name="repeatInterval" value="5000" />
    <property name="startDelay" value="1000" />

</bean>

我创建了一个属性文件app.properties

 repeatInterval = 5000
 startDelay = 1000

我想将这些数据加载到bean属性中。现在我必须将值硬编码到xml文件中。

我希望能够将属性文件中的数据加载到bean属性中。可能吗?

编辑:

我有

<property name="repeatInterval" value="5000" />

我正在寻找的是一种方法

<property name="repeatInterval" value= "get 5000 from property file" />
java xml spring properties javabeans
3个回答
3
投票

要查找类路径上的文件myPropertyFileName.properties并将其加载到spring配置中,请创建以下bean:

<bean id="myPropertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
  <property name="location" value="classpath:myPropertyFileName.properties"/>
  <property name="placeholderPrefix" value="${props:"/>
</bean>

然后使用定义的属性名称

repeatInterval=5000 

像这样:

<property name="repeatInterval" value="${props:repeatInterval}"/>

0
投票

使用Spring propertyPlaceholderConfigurer来实现这一目标。 Follow this guide


0
投票

我过去遇到过类似的事情。我需要使用Spring加载一堆bean,但我希望它们是用户可编辑的bean文件。因此我不想将它们包含在罐子包装中。我所做的是在jar之外创建我的用户定义的bean文件,但是在一个已知的相对位置。我的打包bean定义文件引用了用户定义的bean文件中定义的bean,当我加载应用程序上下文时,我提供了两个文件(用户定义和打包)。

有点不正统,但它有效。

© www.soinside.com 2019 - 2024. All rights reserved.