@Autowired와 final&@RequiredConstructor

프로젝트

목록 보기
12/39

다양한 의존성 주입 방법

📌 Autowired는 생성자가 1개만 있을 경우 생략해도 주입이 가능하다.

📌 SETTER 이용 주입

📌 Field 주입


-> 테스트 할때나 사용해라
이 외 일반 메소드 주입방법이 있는데 거의 사용할 필요가 없다.


생성자 주입을 사용해야하는 이유!

  1. 객체의 불변성 확보
  2. 테스트 코드의 작성
  3. final 키워드 작성 및 Lombok과의 결합
  4. 스프링에 비침투적인 코드 작성
    5.순환 참조 에러 방지

이중에서 3번에 대해 알아보면,

  • 생성자 주입시 필드객체에 final을 사용할 수 있고 이는 컴파일 시점에서 부터 누락된 의존성 확인 및 @RequiredConstructor를 이용하여 this.변수 = 변수 와 같은 형태의 기본 생성자들을 만들어줄 필요가 없다.
    • 변수를 final로 선언하면 의존성 주입을 받을 수 있다.
    • 변수를 final로 선언하면 불변성을 확보 할 수 있다. (변경가능성 최소화의 가장 좋은 방법)
      -> 그러려면 생성자 주입을 사용해야함!!!

결론

  • final과 @RequiredConstructor 을 이용하자!

출처 : https://mangkyu.tistory.com/125

profile
백엔드를 공부하고 있습니다.

0개의 댓글