Порой удобно создавать экземпляр свойств java.util.Properties прямо в spring-конфигурации.
Для этого отлично подходит PropertiesFactoryBean.
При создании следующего бина пары "ключ=значение" будут автоматически разобраны и помещены в Properties-объект:
<bean id="directProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
<property name="properties">
<value>
<!--прямое задание значения-->
asyn.timeout=20000
<!--через placeholder-->
asyn.port=${espp.http.server.port}
</value>
</property>
</bean>
Возможен такой вариант:
<bean id="hibernateProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
<property name="properties">
<props>
<prop key="hibernate.dialect">${hibernate.dialect}</prop>
<prop key="hibernate.query.substitutions">${hibernate.query.substitutions}</prop>
<prop key="hibernate.show_sql">${hibernate.show_sql}</prop>
</props>
</property>
</bean>
Ещё одна альтернатива - загрузка непосредственно из файла, например:
<bean id="singleFileProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
<property name="location" value="jdbc_url.properties"/>
</bean>
или
<bean id="numerousFileProperties" class="org.springframework.beans.factory.config.PropertiesFactoryBean">
<property name="locations">
<array>
<value>jdbc_url.properties</value>
<value>jdbc_auth.properties</value>
</array>
</property>
</bean>
Можно изменять некоторые свойства бина:
- отключить дефолтный синглтон
<property name="singleton" value="false"/>
- позволить продолжить работу при отсутствии файла
<property name="ignoreResourceNotFound" value="true"/>
- определить приоритет источников свойств при их перекрытии
<property name="localOverride" value="true"/>
А ещё есть возможность подключить xmlns:util="http://www.springframework.org/schema/util и создавать объект напрямую:
<util:properties id="clientProperties">
<prop key="applinks.broker.host">mcp-gamma</prop>
<prop key="applinks.broker.port">19080</prop></util:properties>
Комментариев нет:
Отправить комментарий