Spring 프로젝트에서 리스너 유형을 ServletContextListener
으로 사용했습니다. @Autowired
인 인스턴스 필드를 사용했지만 contextInitialized(event)
메서드에서 autowired 인스턴스 변수를 사용할 수 없다면 NullpointerException
을 던집니다. ServletContextListener에서 @Autowired 인스턴스 변수를 사용하는 방법
1
A
답변
0
음, 봄 보장을 위해 @Autowired
를 사용할 수 있습니다.
가 초기화 있어요 후에는 사용하여 액세스 할 수 있습니다
MyClass myClass = ctx.getBean(MyClass.class);
을 다른 말로하면 : 당신이 당신의 애플리케이션 컨텍스트 마지막으로 초기화 Bean
전에를 초기화하는 봄을 강제로 계약을 만들기위한 @Autowired
을 사용할 수 없습니다.
1
수 없습니다. @Autowired
은 컨텍스트가 초기화 된 후에 만 작동합니다.
public class MyListener implements ServletContextListener {
private MyBean myBean;
@Override
public void contextInitialized(ServletContextEvent event) {
WebApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(event.getServletContext());
this.myBean = (MyBean)ctx.getBean("myBean");
}
}
또는 더 나은 솔루션 보리스 거미에 들으 다음과 같습니다 :
그래서이 해킹을 할 수
public class MyListener implements ServletContextListener {
@Autowired
private MyBean myBean;
@Override
public void contextInitialized(ServletContextEvent event) {
WebApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(event.getServletContext());
ctx.autowireBean(this);
}
}
+1
컨텍스트가 있으면'autowireBean (this)'...을 호출하면됩니다. –
관련 문제
- 1. 인스턴스 변수를 만들지 않고 변수를 사용하는 방법
- 2. 인스턴스 변수를 Spock 테스트의 섹션에서 사용하는 방법
- 3. ServletContextListener에서 변수 사용
- 4. @autowired 필드와 @autowired 생성자
- 5. 파이썬에서 인스턴스 변수를 얻는 방법?
- 6. 레일즈 ujs에서 인스턴스 변수를 사용하는 방법은 무엇입니까?
- 7. MVC에서 전역 변수를 사용하는 방법
- 8. FieldEditorPreferencePage에서 인스턴스 범위를 사용하는 방법
- 9. 인스턴스 변수를 할당하는 아이폰
- 10. 인스턴스 변수를 인스턴스 메소드에 전달하는 대신 직접 액세스하는 방법?
- 11. FormulaR1C1에서 변수를 사용하는 방법
- 12. 사전에 변수를 사용하는 방법
- 13. url에서 변수를 사용하는 방법
- 14. sqlite에서 변수를 사용하는 방법
- 15. Spring @Autowired and Singletons
- 16. 인스턴스 변수를 RSpec 공유 예제에 전달하는 방법
- 17. 레일 : 새 작업에서 인스턴스 변수를 초기화하는 방법
- 18. 프로그래밍 방식으로 인스턴스 변수를 호출하는 방법
- 19. 부분 렌더링시 인스턴스 변수를 보내는 방법
- 20. ObjC 클래스 메서드에서 인스턴스 변수를 설정하는 방법
- 21. 새 작업에서 Model.all 인스턴스 변수를 정의하는 방법.
- 22. Objective-C에서 인스턴스 변수를 만드는 방법
- 23. 적절한 방법 NSMutableDictionary 인스턴스 변수를 수정하려면?
- 24. Ruby에서 두 개의 인스턴스 변수를 설정하는 방법
- 25. 어떻게 컨트롤러에서 인스턴스 변수를 만들고 뷰에서 인스턴스 변수를 사용합니까?
- 26. 인스턴스 변수를 양식에 전달하기 - 레일
- 27. NSMUtableArray 인스턴스 변수를 할당해야합니까?
- 28. iPhone에서이 인스턴스 변수를 해제합니까?
- 29. 인스턴스 eval을 기반으로 인스턴스 변수를 DSL로 전달
- 30. 인스턴스 변수로 인스턴스 변수를 유지하지 그 내용
당신이 수동으로 배선해야합니다; Spring은 Java EE 서버가 수행하는 리스너를 생성하지 않습니다. 어떻게'ApplicationContext'를 만들 수 있습니까? [this] (http://stackoverflow.com/a/21914004/2071828)를보십시오. –