다양한 의존성 주입 방법

생성자 주입(권장)

  • @RequiredArgsConstructor Lombok의 주석을 사용하면 생성자 코드를 작성하지 않고도 동일한 기능을 제공할 수 있습니다.
  • 생성자를 통해 종속성을 주입하는 방법
  • 특성:
    • 생성자가 호출될 때 한 번만 호출되도록 보장됩니다.
    • 불변성필수 의존성에 사용
      • final 키워드를 사용하면 생성자를 선언하거나 생성할 때 지정된 값을 설정할 수 있습니다.
    • 종속성 주입은 빈을 등록할 때 자동으로 수행됩니다.
    • 프레임워크에 의존하지 않고 순수한 Java의 장점을 잘 활용하십시오.
  • 생성자가 1개인 경우 @Autowired를 생략해도 자동으로 삽입된다. (스프링 빈에서만)

수정자 주입

  • 세터를 사용한 의존성 주입
  • 특성:
    • 선택적이고 변경 가능한 종속성에 사용됨
    • 순수한 Java 코드이므로 메서드 호출이 필요합니다.

현장 주입(권장하지 않음)

  • 필드 변수에 @Autowired 주석을 추가하여 종속성을 추가합니다.
  • 코드가 간결하지만 외부에서 수정할 수 없어 테스트하기 어려운 단점이 있다.
  • DI 프레임워크 없이는 아무 것도 작동하지 않습니다.

제네릭 메서드 주입

  • 제네릭 메서드를 호출하여 종속성 주입
  • 사실 수정자 주입과 유사합니다.
  • 특성
    • 여러 필드를 동시에 주입할 수 있습니다.
    • 일반적으로 잘 사용하지 않습니다.

https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81-%ED%95%B5%EC%8B%AC-%EC%9B%90 %EB%A6%AC-%EA%B8%B0%EB%B3%B8%ED%8E%B8/대시보드