Сохранение пользовательских свойств в файле aplicationContext.xml Spring - PullRequest
8 голосов
/ 20 мая 2009

Мне нужно сохранить некоторые параметры конфигурации для веб-приложения, использующего Spring Framework.

Обычно я использую файл configurationfile.properties, но мне интересно, могу ли я сохранить эти значения в файле applicationContext.xml.

Одним из обходных путей может быть создание класса JavaBean для хранения значений и создание этого класса с использованием Spring, что-то вроде этого:

<bean id="configurationBean" class="mypackage.someClass">
 <property name="confValue1">
   <value>myValue1</value>
 </property>
 ....
</bean>

Но я хотел бы знать, есть ли способ сохранить эти параметры без необходимости создания этого класса.

Заранее спасибо.


Я думаю, что лучшее решение, которое соответствует моим требованиям, - это использовать экземпляр java.util.Properties в качестве Spring Bean.

Спасибо всем.

Ответы [ 4 ]

16 голосов
/ 28 мая 2009

Это должно работать со следующим синтаксисом.

<bean id="props" class="java.util.Properties" >
    <constructor-arg>
        <props>
            <prop key="myKey">myValue</prop>
            <prop ...>
        </props>
    </constructor-arg>
</bean>

Вы используете тот факт, что java.util.Properties имеет конструктор копирования, который принимает объект Properties.

Я делаю это для HashSet, который также имеет конструктор копирования (как это делают HashMaps и ArrayLists), и он отлично работает.

1 голос
/ 21 мая 2009

Я думаю, что вы получите лучшие результаты, используя PropertyPlaceholderConfigurer в Spring, который позволяет сопоставлять значения из обычного файла .properties со свойствами, определенными в ваших bean-компонентах.

http://static.springframework.org/spring/docs/2.5.x/reference/beans.html#beans-factory-placeholderconfigurer

В этом примере показано, как установить свойства соединения JDBC непосредственно для экземпляра javax.sql.DataSource, устраняя необходимость в промежуточном «компоненте конфигурации».

1 голос
/ 20 мая 2009

Spring имеет встроенную поддержку для указания свойств в контексте XML приложения. См. раздел 3.3.2.4 справочных документов Spring.

0 голосов
/ 10 апреля 2013

Лучший способ - использовать Spring PropertyPlaceholderConfigurer

<bean id="propertyConfigurer" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
    <property name="locations">
        <list>
            <value>classpath:yourconfigurationfile.properties</value>
        </list>
    </property>
</bean>

затем

<bean id="configurationBean" class="mypackage.someClass">
    <property name="confValue1">
        <value>${myvalue1}</value>
    </property>
    ....
</bean>  

и в вашем файле конфигурации.properties

myvalue1= value1
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...