생성자 주입을 쓰는 이유

조현근·2022년 11월 3일
0

의존성 주입 방법

  1. 생성자 주입
  2. 필드 주입
  3. setter 주입

생성자 주입을 주로 사용하는 이유

  1. 생성자 주입을 하면 필드에 final을 붙일 수 있다.
    • 불변이 되는 장점이 있음
    • final을 붙이고 생성자 주입을 쓰면 생성자에서 행여나 필드에 값을 할당안하면 컴파일 에러를 발생시킴.(컴파일 시점에서 버그를 알 수 있어 좋음)
  2. 생성자 주입을 하면 컴파일 단계에서 양방향 참조를 잡아 예외를 발생시켜준다.
  3. 생성자 주입을 하면 테스트를 쉽게 할 수 있다. 결국 생성자가 만들어지니 fake객체를 넣어주는 식으로 쉬운 테스트를 할 수 있다.

setter 주입의 단점

  • setter 메서드가 필요함

필드 주입의 단점

  • 외부에서 변경이 불가능해서 테스트 하기 힘듦
  • DI 프레임워크가 없으면 아무것도 할 수 없음
profile
안녕하세요!

0개의 댓글