Установка значения свойства spring bean, используя ref- bean

77
6

Я пытаюсь установить значение свойства, используя spring.


<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 изменяется, поэтому его нужно загружать при запуске сервера.


Любые мысли о том, как я могу вставить значение velocityResourcePath в свойство?

спросил(а) 2021-01-25T23:05:20+03:00 4 месяца, 4 недели назад
1
Решение
99

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


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

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

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

Это позволит вам удалить velocityResourcePath bean.

ответил(а) 2021-01-25T23:05:20+03:00 4 месяца, 4 недели назад
63

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

<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>

ответил(а) 2021-01-25T23:05:20+03:00 4 месяца, 4 недели назад
Ваш ответ
Введите минимум 50 символов
Чтобы , пожалуйста,
Выберите тему жалобы:

Другая проблема