[Springboot] ERROR 19667 [dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.NullPointerException] with root cause

김서영·2022년 6월 16일
1

에러일기

목록 보기
6/7

에러 메세지

2022-06-16 09:50:59.532 ERROR 19667 --- [0.1-8085-exec-1] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.NullPointerException] with root cause

원인

  • 생성자 주입 과정의 생략하여서 발생한 문제.

해결

  • Controller, Service 파일에 변수 선언을 할 때 @RequiredArgsConstructor 어노테이션을 붙여주기
  • 선언 시, final을 붙이기

@RequiredArgsConstructor
의존성주입의 종류로는 Constructor(생성자),Setter,Field 타입이 있는데, 이를 코드로 매 번 구현하기에는 번거로워 롬복을 이용한 어노테이션으로 해결.

따라서, @RequiredArgsConstructor 를 통해 생성자 의존성을 간단하게 주입해주고, 이는 final이 붙거나 @NotNull 이 붙은 필드의 생성자를 자동 생성해주는 롬복 어노테이션.

예시

@RestController
@RequiredArgsConstructor
@RequestMapping(value = "/api/v1/aligo")
public class AligoController {
    //static 해결
    private final AligoService aligoService;
    
    . . .
    
    }

참고

https://dev-coco.tistory.com/93
https://velog.io/@developerjun0615/Spring-RequiredArgsConstructor-어노테이션을-사용한-생성자-주입

profile
하지만 저는 이겨냅니다. 김서영이죠?

0개의 댓글