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 

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