필자도 한때 프로젝트를 뛰면서 생각없이 기간내에 처리하기 위해 @Autowired 를 이용한 의존주입을 남발하여 사용해왔고, 지금도 자연스럽게 이를 사용해왔습니다. (사실 Spring을 처음 접할 때 그렇게 쓰라고 가르쳤었음...) 생성자를 이용하는 것이 이점이 있음을 알고 있었지만 간편함에 빠진 오래된 버릇을 고치기란 쉽지 않았습니다. 그래서 신규로 하는 프로젝트에는 이런것들을 없애고자 @Autowired 를 완전 지양하도록 하려고 합니다. 이미 @Autowired 의 사용은 공식문서 그리고 Spring팀에서 지양을 권고해왔습니다. 단점들이 너무 명확했기에... - 불확실한 참조 - 코드 변이의 가능성 - 순환참조의 가능성 (컴파일 시 검출 불가) - 단일책임의 원칙 위반 가능성 장점은 남발하기 편하다..
Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.NullPointerException] with root cause 내가 맞이한 오류는 위와 같은데 어떤 상황이었냐면 jar 를 배포했을때 Mybatis 조회쿼리를 호출하면 위와 같은 오류가 발생했다. 개발툴에서는 문제없이 구동되고 있었기 때문에 몰랐고, 배포하고 나서야 알게 되었다. 프로젝트의 Mybatis 는 mapper 방식과 dao SqlSession 방식 모두 쓰는 형태인데 그 중 dao SqlSession 방식은 구프로젝트의 뼈대 모..