Преждевременная оптимизация является первопричиной всех бед в программировании. Дональд Кнут

Инициализация “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 ;)

Тэги:

Оставить сообщение