В Log4j есть функция, в которой система может быть инициализирована для выполнения настройки и просмотра с интервалом. Это позволяет системе log4j перезагружать свои свойства всякий раз, когда изменяется файл свойства. Имеет ли структура spring такой объект Observer Configuration, в котором конфигурация перезагружается при ее изменении. Конфигурация, которая нуждается в перезагрузке, - это не Sprend applicationContext.xml, а различные другие файлы конфигурации, которые инициализируются с помощью инициализации spring beans.
Автоматическая переустановка конфигурации в Spring
Ответ 1
Я нашел утилиту, которая делает что-то похожее на Log4J здесь. Это в основном расширение PropertyPlaceholderConfigurer, которое перезагружает свойства при их изменении.
Ответ 2
AFAIK Spring не предоставляет такую полезность. Однако есть сторонний инструмент, JRebel, который позволяет обновлять все веб-приложение (включая конфигурацию Spring), не требуя перезагрузка сервера.
Бесплатная пробная версия доступна, а цена покупки довольно недорогая.
Ответ 3
Я был бы осторожен при перезагрузке контекста приложения spring.
Что вы ожидаете от singleton beans? Если объект имеет ссылку на singleton bean, должен ли он обновляться?
Ответ 4
Я разрабатываю JRebel, и я очень опасаюсь, что он обновит вашу конфигурацию. Хорошо работает с Java, но не с Spring.
Ответ 5
Если вы хотите добавить контекст, я сделал это следующим образом:
public class ApplicationContextUtil
{
static String[] configFiles = {"applicationContextParent.xml"};
private static ApplicationContext context = null;
static
{
context = new ClassPathXmlApplicationContext ( configFiles );
}
public static void addContext( String[] newConfigFiles )
{
// add the new context to the previous context
ApplicationContext newContext = new ClassPathXmlApplicationContext ( newConfigFiles, context );
context = newContext;
}
public static ApplicationContext getApplicationContext ()
{
// return the context
return context;
}
}
Это ваш класс поставщика контекста. Для получения дополнительной информации вы можете посмотреть мой блог