Рассмотрим следующий сценарий. У меня есть контекст приложения Spring с bean-компонентом, свойства которого должны быть настраиваемыми, например DataSource
или MailSender
. Изменяемая конфигурация приложения управляется отдельным компонентом, назовем его конфигурацией
.
Теперь администратор может изменить значения конфигурации, такие как адрес электронной почты или URL-адрес базы данных, и я хотел бы повторно инициализировать настроенный компонент во время выполнения.
Предположим, я не могу просто изменить свойство настраиваемого объекта. bean выше (например, созданный FactoryBean
или внедрение конструктора), но необходимо воссоздать сам bean.
Есть мысли о том, как этого добиться? Я был бы рад получить совет, как организовать всю настройку. Ничего не исправлено. : -)
РЕДАКТИРОВАТЬ
Чтобы немного прояснить ситуацию: я не спрашиваю, как обновить конфигурацию или как ввести статические значения конфигурации. Я попробую пример:
<beans>
<util:map id="configuration">
<!-- initial configuration -->
</util:map>
<bean id="constructorInjectedBean" class="Foo">
<constructor-arg value="#{configuration['foobar']}" />
</bean>
<bean id="configurationService" class="ConfigurationService">
<property name="configuration" ref="configuration" />
</bean>
</beans>
Итак, есть компонент constructorInjectedBean
, который использует внедрение конструктора. УДАЛИТЬ ИЗ таблицы WHERE id IN (SELECT ....) Как я могу это сделать?
Я хочу сделать что-то вроде этого:
DELETE FROM table WHERE id IN (SELECT ....)
Как я могу это сделать?