Как можно (можно ли) при завершении программы вызывать destroy-method без вызова appContext.close()?
void main(){
appContext = new ClassPathXmlApplicationContext("spring.xml");
... blablabla...
// завершаю программу без вызова appContext.close()
}
Можно зарегистрировать Shutdown Hook.
void main(){
appContext = new ClassPathXmlApplicationContext("spring.xml");
appContext.registerShutdownHook();
appContext.refresh();
... blablabla...
// завершаю программу без вызова appContext.close()
}
В этом случае Spring зарегистрирует перехватчик завершения приложения, в котором будет вызвано закрытие контекста если оно не было вызвано ранее. Удобно при наличии нескольких точек выхода из приложения.
destroy-method будет выполнятся для singleton бинов только при закрытии контекста, для prototype вообще не будет выполноятся так как контекст не будет следить за его жизненным циклом
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости