JAVA/Spring Framework
자바 Spring 에서 serviceImpl NullPointerException 해결하기 (리스너 관련)
Tech Signal
2020. 10. 9. 13:39
<만약 ProdServiceImpl()을 이렇게 짠다면?>

해당 코드는 serviceImpl의 생성자 안에 있고, serviceImpl은 상위 컨텍스트에 생성됨. 그러면 SampleListener보다 먼저 생성돼서 NullPointer 뜸
<해결방법>

생성자 안에 있던 코드를 init() 메서드로 만들고, postConstruct 어노테이션을 사용해 생성 이후에 실행되도록 한다.
그 과정에서 SampleListener대신 자기 자신을 context로 참조할 수 있다. 그리고 그 context는 init()보다 먼저 DI되기 때문에 SampleListener가 없이 사용이 가능하다.

SampleListener 는 ServletContext를 상속받은 리스너로서, 접속 유저 정보를 저장해놓는 작업을 수행한다.