Установка значения свойства пружинного компонента с помощью ref-bean - PullRequest
2 голосов
/ 13 января 2011

Я пытаюсь установить значение свойства с помощью весны.

<bean id="velocityPropsBean" class="com.test.CustomProperties" abstract="false" singleton="true" lazy-init="false" autowire="default" dependency-check="default">
    <property name="properties">
   <props>
        <prop key="resource.loader">file</prop>
        <prop key="file.resource.loader.cache">true</prop>
        <prop key="file.resource.loader.class">org.apache.velocity.runtime.resource.loader.FileResourceLoader</prop>
        <prop key="file.resource.loader.path">NEED TO INSERT VALUE AT STARTUP</prop>

    </props>

    </property>
</bean>

<bean id="velocityResourcePath" class="java.lang.String" factory-bean="velocityHelper" factory-method="getLoaderPath"/>

Теперь мне нужно вставить результат из getLoaderPath в file.resource.loader.path. Значение getLoaderPath изменяется, поэтому его нужно загружать при запуске сервера.

Есть мысли, как я могу вставить значение speedResourcePath в свойство?

Ответы [ 2 ]

4 голосов
/ 13 января 2011

Используя Spring 3, вы можете пропустить среднюю стадию и вызвать фабрику напрямую, используя SpringEL :

<prop key="file.resource.loader.path">#{ velocityHelper.loaderPath }</prop>

или, возможно,

<prop key="file.resource.loader.path">#{ velocityHelper.getLoaderPath() }</prop>

Это позволит вам удалить компонент velocityResourcePath.

1 голос
/ 13 января 2011

Ниже код может помочь вам.

<import resource="classpath:/DaoContext.xml"/>

<bean id="ClientMasterDao" class="dao.hibernate.impl.ClientMasterImpl">
<property name="sessionFactory" ref="sessionFactory"/>
</bean>

<bean id="ClientMasterServices" class="client.ClientMasterServices">
<property name="clientDao" ref="ClientMasterDao"/>
</bean>
...