Реализация методов жизненного цикла сервлета в веб-приложении Spring? - PullRequest
1 голос
/ 17 февраля 2011

Я реализую веб-приложение, используя Spring.Я использую Spring ContextLoaderListener, чтобы загрузить контексты моего приложения, и Spring DispatcherServlet, чтобы загрузить соответствующие bean-компоненты из {name} -servlet.xml, которые ссылаются на bean-компоненты в основном контексте приложения.Я хочу иметь возможность провести интеграционное тестирование этих конфигураций Spring вне контейнера, чтобы проверить правильность всех соединений перед развертыванием в Tomcat.Однако мое приложение требует некоторой запланированной фоновой обработки при запуске в контейнере.В обычном HttpServlet я просто реализую init () и destroy ().Все предложения, которые я прочитал, предполагают использование InitializingBean для такого рода инициализации.

Однако, если я использую InitializingBean, afterPropertiesSet () вызывается независимо от того, нахожусь ли я внутри контейнера или в интеграционных тестах - и вне контейнераУ меня нет доступа к ресурсам, которые нужны фоновой задаче.Есть ли лучший способ выполнять задачи, которые я обычно выполняю в init () и destroy (), чтобы они запускались только при развертывании в виде веб-приложения?

1 Ответ

1 голос
/ 18 февраля 2011

Рассматривали ли вы использование файла конфигурации тестовой пружины, который переопределяет компонент, реализующий фоновый процесс?

Таким образом, все остальное в конфигурации пружины будет работать нормально, за исключением одного переопределенного компонента.

...