본문 바로가기
SpringBoot/ETC

생성자 주입 방식의 장점

by BAYABA 2021. 10. 1.
  1. 개인 공부 목적으로 작성한 글입니다.
  2. 아래 출처를 참고하여 작성하였습니다.

목차

  1. INTRO
  2. 생성자 주입 방식의 장점
    2-1. 의존 관계 주입 문제를 컴파일 타임에 인지 가능
    2-2. 테스트 코드 작성 용이
    2-3. 의존성 주입이 필요한 필드를 final로 선언 가능

1. INTRO

  1. 스프링에서는 Setter 주입, 필드 주입, 생성자 주입 이렇게 세 가지 방식으로 DI를 할 수 있습니다.
  2. 그 중에서도 생성자 주입을 사용할 때의 장점에 대해서만 알아보겠습니다.
  • 더 자세한 내용은 아래 출처를 참고하시면 됩니다.

2. 생성자 주입 방식의 장점


2-1. 의존 관계 주입 문제를 컴파일 타임에 인지 가능

  1. 특정 객체를 생성하는 시점에 의존관계 설정이 제대로 되지 않으면 객체 생성이 불가능합니다.
  • 위 문제를 컴파일 타임에 인지할 수 있습니다. (왜냐하면 특정 객체를 사용하는 코드를 작성할 수 없기 때문)
  • 그러므로 의존관계를 제대로 주입하지 않아 런타임에 발생하는 Null Pointer Exception을 방지할 수 있습니다.

2-2. 테스트 코드 작성 용이

  1. 주입받을 객체로 Mock 객체를 사용할 수 있습니다.
  • 즉, '특정 기능, 역할'을 흉내내는 Mock 객체를 사용하여 빠르게 기능을 테스트할 수 있습니다.

2-3. 의존성 주입이 필요한 필드를 final로 선언 가능

  1. Setter 주입이나 필드 주입 방식과 다르게 객체 생성 시점에 의존성을 주입을 받는 것이므로 해당 필드를 final로 선언하고 사용할 수 있습니다.
  2. 즉, 의존을 주입받는 필드에 대해 Immutable을 보장받을 수 있습니다.

출처

  1. 스프링 - 생성자 주입을 사용해야 하는 이유, 필드인젝션이 좋지 않은 이유

'SpringBoot > ETC' 카테고리의 다른 글

SQL 보기 옵션 정리  (0) 2021.10.14
SpringBoot에 MYSQL 연동  (0) 2021.10.14
@Builder 사용 시 주의 점  (0) 2021.10.08