본문 바로가기
공부/Spring

[Spring] 의존성 주입 3가지 방법(생성자 주입을 사용하자)

by JERO__ 2022. 4. 26.

공부한 내용으로는 다음과 같다.

 

결론, 생성자 주입 방식을 사용하자.

의존성을 주입하는 방법으로 3가지가 있다.

  1. 생성자 주입

  2. 필드 주입(@Autowired

  3. 수정자 주입(setter)

 

 

생성자 주입이 주는 장점

  1. 순환참조를 방지할 수 있다.
    • 컴포넌트 간 의존성이 생긴다. A가 B를 참조, B가 A를 참조하는 경우 실행시 서로가 계속 호출될 수 있다. 하지만, 생성자 주입을 할 경우, 코드 실행 전 오류를 발견하여 사전에 알 수 있다(BeanCurrentlyInCreationException).
    • 생성자 주입은 필드주입, 수정자 주입과 다르게 빈을 주입하는 순서가 다르다. 수정자 주입같은 경우, 받으려는 빈 생성자를 호출하여 빈을 찾거나 팩터리에 등록한 후 찾는다.
  2. 테스트 코드 작성이 편리하다.
  3. 필드를 final 로 선언할 수 있다.
  4. 불변(immutable)하다.
    • 실행 중 객체가 변하는 것을 막을 수 있다.
    • 오류를 사전에 방지할 수 있다.

댓글