Как загрузить данные из файла свойств в значения свойств бина? - PullRequest
2 голосов
/ 13 сентября 2011

Я следую следующей статье.

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

Я хочу загрузить эти данные в свойства бина.Прямо сейчас мне нужно жестко запрограммировать значения в файл xml.

Я хочу иметь возможность загружать данные из файла свойств в свойства bean-компонента.Возможно ли это?

РЕДАКТИРОВАТЬ:

У меня есть

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

То, что я ищу, это способ сделать это

<property name="repeatInterval" value= "get 5000 from property file" />

Ответы [ 3 ]

3 голосов
/ 13 сентября 2011

Чтобы найти файл myPropertyFileName.properties, который находится на вашем пути к классам, и загрузить его в конфигурацию Spring, создайте следующий компонент:

<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 голосов
/ 13 сентября 2011

Я сталкивался с чем-то похожим в прошлом. Мне нужно было загружать кучу бинов с помощью Spring, но я хотел, чтобы они были редактируемыми пользователем файлами бинов. Поэтому я не хотел включать их в упаковку банок. Что я сделал, так это создал мои пользовательские файлы bean вне jar, но в известном относительном месте. Мой файл определения упакованного компонента ссылался на компоненты, определенные в определяемом пользователем файле компонента, и когда я загружал контекст приложения, я предоставлял оба файла (определяемые пользователем и упакованные).

Немного неортодоксально, но это сработало.

0 голосов
/ 13 сентября 2011

Используйте Spring propertyPlaceholderConfigurer для достижения этой цели. Следуйте этому руководству .

...