2016-10-06 4 views
0

У меня есть пружинные конфигурации, которая использует свойство, например так:Как установить свойство Spring из файла конфигурации XML?

<bean id="foo" class="..."> 
    <constructor-arg value="${aProperty}"/> 
</bean> 

Очевидно, что я знаю, что может разрешить это свойство при наличии файла свойств (скажем, example.properties):

aProperty=value 

и импортировать этот файл в весенней конфигурации:

<bean id="propertyConfiguration" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 
    <property name="locations"> 
     <list> 
      <value>example.properties</value> 
     </list> 
    </property> 
</bean> 

Мой вопрос, я могу установить это свойство непосредственно в файле XML, вместо того, чтобы CREA te отдельный файл свойств? Нечто подобное было бы идеально:

<set-property name="aProperty" value="value"/> 

Maven имеет аналогичную функцию для пом файлов:

<properties><aProperty>value</aProperty></properies> 

ответ

1

Цель использования файла свойств Разъединять значений из файлов конфигурации Spring, так что это немного странно определить свойство в том же файле конфигурации. Тем не менее вы всегда можете добавить свойства в свой PropertyPlaceholderConfigurer:

<bean id="propertyConfiguration" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> 
    <property name="locations"> 
     <list> 
      <value>example.properties</value> 
     </list> 
    </property> 
    <property name="properties"> 
     <props> 
      <prop key="aa">bb</prop> 
      <prop key="cc">dd</prop> 
     </props> 
    </property> 
</bean> 

Надеюсь, это поможет.

+0

Perfect. Причиной этого является значение свойства - это имя файла свойств, переданного в стороннюю библиотеку. Поскольку это единственное свойство, которое отличается от 6+ экземпляров моего приложения, я не хотел создавать шесть новых файлов свойств, все из которых имели одно свойство, которое было именем еще одного файла свойств! – tonicsoft