Преждевременная оптимизация является первопричиной всех бед в программировании. Дональд Кнут
Инициализация “static property” в “Spring application context configuration”
В проекте, над которым я работаю в данный момент, возникла необходимость инициализации статических свойств (в моем случае это Axis – org.apache.axis.AxisProperties) при формировании спрингового контекста. Закатав рукава с криками “Да это как два байта переслать” сразу же возник следующий вопрос: “Как в Spring application context configuration статическому методу передать параметры ?”
Немного погуглив и просмотрев сорцы спринга, нашел довольно не плохое и красивое решение данной задачи:
<bean id="setAxisProperties"
class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
<property name="targetClass" value="org.apache.axis.AxisProperties"/>
<property name="targetMethod" value="setProperties"/>
<property name="arguments">
<list>
<props>
<prop key="http.proxyHost">${ws.conf.proxy.host}</prop>
<prop key="http.proxyPort">${ws.conf.proxy.port}</prop>
<prop key="http.proxySet">${ws.conf.proxy.set}</prop>
</props>
</list>
</property>
</bean>
Таким же образом можно проинициализировать System properties
Тэги: Spring

