Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception
쿼리에 null값이 들어가서 생기는 오류이다.
값은 있는데 쿼리에 왜 null값이 들어가는지 찾아보다가
Controller 에서 Service 의 의존성을 주입하지 않았다는 것을 알았다.
@Autowired 를 사용해 의존성 주입을 해줌으로써 문제를 해결하였다.
@Autowired
private SaveService SaveService;
Autowired 란
@Autowired 란 필요한 의존 객체의 타입에 해당하는 Bean을 찾아 주입하는 것이다.
빈을 주입하는 방법에는 3가지 타입이 있다.
- 생성자 주입
- setter 주입
- 필드 주입
의존성 주입에서 생성자 주입을 권장한다.
이유로는 순환참조를 방지할 수 있고 테스트 코드 작성이 용이하며
final로 선언이 가능해 객체를 변경 불가능하게 하기 때문이다.
단일 생성자인 경우에는 어노테이션을 사용하지 않아도 되지만
생성자가 2개 이상인 경우에는 @Autowired 어노테이션을 사용해야 한다.
반응형
'백엔드 > Spring' 카테고리의 다른 글
[Java] 자바 문자열에서 숫자 추출하기 (0) | 2021.10.27 |
---|---|
Java Selenium 페이지 이동 (크롤링하기) (0) | 2021.10.27 |
SyntaxError: ('future feature print_function is not defined', ('__pyclasspath__/numpy/__init__.py', 107, 0, '')) (0) | 2021.10.22 |
[spring] spring cors 해결 (0) | 2021.10.19 |
java.net.ProtocolException: cannot write to a URLConnection if doOutput=false - call setDoOutput(true) (0) | 2021.10.19 |