나는 다음과 같은 클래스를 정의합니다. 나는 SomeService
과 AnotherService
을 구현하는 빈을 MyServletListener
에 삽입하고 싶습니다. 이것이 가능합니까? 이 같은의존성 주사한다 서블릿 리스너
12
A
답변
23
뭔가 작업을해야합니다 :
public class MyServletListener implements ServletContextListener, HttpSessionAttributeListener, HttpSessionListener {
@Autowired
private SomeService someService;
@Autowired
private AnotherService anotherService;
public void contextInitialized(ServletContextEvent sce) {
WebApplicationContextUtils
.getRequiredWebApplicationContext(sce.getServletContext())
.getAutowireCapableBeanFactory()
.autowireBean(this);
}
...
}
리스너는 이후에 선언해야 봄의 ContextLoaderListener
web.xml
인치
10
조금 더 짧고 더 간단하면 SpringBeanAutowiringSupport
클래스를 사용하는 것입니다. 당신이해야 할 모든보다
은 이것이다 :
SpringBeanAutowiringSupport.processInjectionBasedOnCurrentContext(this);
그래서 axtavt에서 예제를 사용 :
public class MyServletListener implements ServletContextListener, HttpSessionAttributeListener, HttpSessionListener {
@Autowired
private SomeService someService;
@Autowired
private AnotherService anotherService;
public void contextInitialized(ServletContextEvent sce) {
SpringBeanAutowiringSupport.processInjectionBasedOnCurrentContext(this);
}
...
}
+0
이것은 훨씬 간단한 방법이며 완벽하게 작동합니다. – Calabacin
관련 문제
- 1. 자바 EE 서블릿/필터/위상 리스너 차이 처리
- 2. 서블릿
- 3. 예외 리스너
- 4. 이벤트 리스너
- 5. 자바 EE 필터와 리스너
- 6. 비동기 서블릿 대 동기 서블릿
- 7. 해결 의존성
- 8. 의존성 주입
- 9. 의존성 이론
- 10. 해결 의존성
- 11. DLL 의존성
- 12. 의존성 삽입
- 13. iMX31 의존성?
- 14. 허드슨 의존성
- 15. 리스너 클래스가 메소드를 호출하지 않습니까?
- 16. 루트 응용 프로그램의 서블릿 컨텍스트에없는 서블릿
- 17. javax.servlet.ServletException : 서블릿 용 Servlet.init() 서블릿 예외가 발생했습니다.
- 18. 서블릿 필터 - 호출 된 서블릿/JSP 확인
- 19. 서블릿 또는 Struts와 서블릿 통합에 대한 Struts
- 20. 액세스 서블릿 클래스 이름 또는 서블릿 이름
- 21. 안드로이드 뷰에서 리스너 제거하기
- 22. 자바 스크립트 이벤트 리스너
- 23. 자바 스크립트의 이벤트 리스너
- 24. 자바 스크립트 이벤트 리스너?
- 25. JNI 리스너 구현
- 26. 오라클 TNS 리스너 오류
- 27. Doctrine2 ManyToMany 리스너 이벤트
- 28. JQuery와 URL 이벤트 리스너
- 29. JQuery 폼 업데이트 리스너
- 30. Android : 글로벌 키 리스너
@Don :'(ServletContextEvent) contextInitalized'['ServletContextListener'] (HTTP에 정의된다 : //download.oracle.com/docs/cd/E17802_01/products/products/servlet/2.3/javadoc/javax/servlet/ServletContextListener.html#contextInitialized(javax.servlet.ServletContextEvent)) – ig0774
잘 작동합니다. – Nico
중요 : web.xml에서 MyServletListener 앞에 ContextLoaderListener를로드해야합니다. – Nico