인프런 커뮤니티 질문&답변

이지수님의 프로필 이미지

작성한 질문수

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

52강. Spring Boot 2.7.x에서 3.0.x로 업데이트하기

lombok 관련 오류입니다

23.10.10 09:10 작성

·

231

1

BookService에서 @RequiredArgsConstructor을 설정하면

책 대출, 책 반납 등 BookRepository를 사용하는 코드에서 에러가 발생합니다. 오류 메시지는 "this.bookRepository" is null입니다. BookService에서 bookRepository가 받아오지 못하는 것 같습니다.

또한, 해당 어노테이션을 지운 후 생성자로 변경하면, 코드는 정상적으로 돌아가게 됩니다. Lombok의 문제인 건지, 코드의 특정 부분을 설정하면 되는 것인지 궁금합니다.

 

 

답변 1

0

최태현님의 프로필 이미지
최태현
지식공유자

2023. 10. 10. 16:42

안녕하세요 지수님! 🙂 좋은 질문 남겨 주셔서 감사합니다.

 

사용해주신 @RequiredArgsConsturctor 는 "꼭 필요한 필드"에 대해서만 생성자를 만드는 기능입니다.

 

여기서 "꼭 필요한 필드"는 초기화 하지 않았을 때 에러가 발생하는 필드를 의미하는데요! 예를 들어,

public class Sample {
  private String str1;
  private final String str2;
}

위와 같이 str1, str2 두 가지 필드가 있다고 한다면,

str1 은 null로 값이 자동 할당되고 에러가 발생하지 않는 반면, str2 는 final이 붙어 있음에도 초기값이 지정되어 있지 않기 때문에 에러가 발생하게 됩니다!

 

따라서 사용해주신 XXXRepository에 private final 과 같은 지시어를 붙여주시면 해결될 것 같습니다. 👍

감사합니다!! 🙇