Перезагрузка / обновление файла конфигурации Spring без перезапуска контейнера сервлета
Что ж, может быть полезно spring выполнить такую перезагрузку spring контекста при тестировании spring-java-config вашего приложения.
Вы можете spring попробовать метод refresh
одного spring-java-config из классов AbstractRefreshableApplicationContext
: он не обновит spring-java-config ваши ранее созданные bean-компоненты, но spring-framework следующий вызов в контексте spring-config вернет обновленные beans.
import java.io.File;
import java.io.IOException;
import org.apache.commons.io.FileUtils;
import org.springframework.context.support.FileSystemXmlApplicationContext;
public class ReloadSpringContext {
final static String header = "\n" +
"\n";
final static String contextA =
"\n" +
"\t\t\n" +
" ";
final static String contextB =
"\n" +
"\t\t\n" +
" ";
public static void main(String[] args) throws IOException {
//create a single context file
final File contextFile = File.createTempFile("testSpringContext", ".xml");
//write the first context into it
FileUtils.writeStringToFile(contextFile, header + contextA);
//create a spring context
FileSystemXmlApplicationContext context = new FileSystemXmlApplicationContext(
new String[]{contextFile.getPath()}
);
//echo the bean 'test' on stdout
System.out.println(context.getBean("test"));
//write the second context into it
FileUtils.writeStringToFile(contextFile, header + contextB);
//refresh the context
context.refresh();
//echo the bean 'test' on stdout
System.out.println(context.getBean("test"));
}
}
И spring вы получите вот такой результат
fromContextA
fromContextB
Другой spring-config способ добиться этого (и, возможно, более spring-java-config простой) - использовать функцию spring-java-config Refreshable Bean в Spring spring 2.5+. С помощью динамического spring-java-config языка (Groovy и т. Д.) И spring-config Spring вы даже можете изменить spring-java-config поведение bean-компонентов. Взгляните spring-config на spring reference for dynamic language:
24.3.1.2. Освежающие spring-java-config бобы
Один из (если не самый) убедительные spring-framework преимущества динамичного языковая spring-framework поддержка в Spring - это функция spring-config "обновляемых компонентов".
Обновляемый spring-java-config компонент - это компонент spring на основе динамического языка, который spring-config с небольшой объем конфигурации, bean-компонент spring-framework с динамическим языком может отслеживать spring-config изменения в его основе исходный spring-framework файловый ресурс, а затем spring-framework перезагрузить сам, когда spring-config динамический язык исходный spring-config файл изменен (например когда spring разработчик редактирует и spring-framework сохраняет вносит изменения spring-framework в файл на файловая система).
spring
Перезагрузка / обновление файла конфигурации Spring без перезапуска контейнера сервлета
Мы используем файлы cookies для улучшения работы сайта. Оставаясь на нашем сайте, вы соглашаетесь с условиями использования файлов cookies. Чтобы ознакомиться с нашими Положениями о конфиденциальности и об использовании файлов cookie, нажмите здесь.