Spring Web Dependency Injection (IOC) и ServletContextListener - PullRequest
0 голосов
/ 11 ноября 2009

У меня есть код, который структурирован как Spring bean-компоненты и зависимости между ними. Это только малая часть кода, так как остальная часть - 'legacy' code.

На данный момент я хотел бы выполнить действие с одним из этих bean-компонентов в существующем 'legacy' классе, который расширяет javax.servlet.ServletContextListener. Этот класс инициализирует приложение, и его код вызывается только один раз.

Какой мой лучший образ действий?

Спасибо!

Ответы [ 2 ]

4 голосов
/ 11 ноября 2009

Вы можете получить контекст Spring следующим образом:

WebApplicationContext ctx = WebApplicationContextUtils.getRequiredWebApplicationContext(servletContextEvent.getSevletContext())

Затем вы можете вызвать ctx.getBean («имя»); (и еще немного - проверьте javadocs WebApplicationContext и его родителей)

3 голосов
/ 11 ноября 2009

Нет никакого смысла в bean-компоненте Spring, расширяющем ServletContextListener, поскольку бины не слушают контекст сервлета. Если вы хотите использовать компоненты, которые инициализируются и уничтожаются вместе с приложением, то есть много способов сделать это в Spring. См. эту часть документов.

...