개발/Spring

[Spring] - 의존관계 주입

dongdev 2022. 1. 10. 15:30

의존관계 주입은 크게 4가지 방법이 있다.

1. 생성자 주입

2. 수정자 주입(setter)

3. 필드 주입

4. 일반 메서드 주입

 

1. 생성자 주입(권장)

  • 생성자 호출시점에 딱 1번만 호출되는 것을 보장
  • 불변, 필수 의존관계에 사용
  • 스프링에서 권장함

 

(lombok 사용)

 

2. 수정자 주입(setter)

  • 선택, 변경 가능성이 있는 의존관계에 사용

 

3. 필드 주입

  • 외부에서 변경이 불가능해 테스트 하기 힘듬
  • DI 프레임워크가 필요함(@SpringBootTest 처럼 스프링 컨테이너를 테스트에 통합한 경우에만 가능)

 

 

4. 일반 메서드 주입

  • 한번에 여러 필드를 주입 받을 수 있음