반응형
본 내용은 인프런의 김영한 님의 강의 "스프링 핵심 원리 - 기본편" 내용을 바탕으로 정리한 내용입니다.
1. 명시적인 의존성 표현
생성자 주입은 필요한 모든 의존성을 생성자 매개변수로 표현한다. 이로 인해 클래스의 의존성이 명시적으로 드러나므로 코드를 이해하기 쉽다.
2. 불변성 보장
생성자 주입은 객체 생성시 한 번 생성되면 의존성이 변경되지 않는데 이는 불변성을 보장하고 객체를 안정적으로 만드는 좋은 설계 방법이다.
3. 순환 의존성 방지
생성자 주입은 순환 의존성을 방지하는데 순환 의존성이 발생하면 애플리케이션이 시작되지 않거나 런타임 중에 문제가 발생할 수 있다.
4. 테스트 용이성
생성자 주입은 의존성을 외부에서 주입하므로 테스트할 때 Mock 객체를 주입하여 간단하게 유닛 테스트를 수행할 수 있다.
5. 누락 방지
생성자 주입을 사용하면 의존관계 주입이 누락되었을 때 컴파일 오류가 발생하여 쉽게 찾을 수 있다.
6. final 키워드
생성자 주입을 사용하면 필드에 final 키워드를 사용할 수 있는데 이는 값이 설정되지 않는 오류를 컴파일 시점에 막아준다.
※ 항상 생성자 주입을 사용하고, 가끔 옵션이 필요할 때만 수정자 주입을 사용하면 된다. 필드 주입은 사용하지 않는 것을 권장한다. (물론 아직 필드주입을 사용하는 회사는 많은 것 같다, 우리 회사 포함해서..)
반응형
'Spring' 카테고리의 다른 글
[스프링] 조회할 빈이 2개 이상일 경우(@Qualifier, @Primary) (0) | 2023.07.22 |
---|---|
[스프링] 롬복(Lombok) (0) | 2023.07.22 |
[스프링] 의존관계 주입 방법(스프링 빈 주입 방법) (0) | 2023.07.21 |
[스프링] @Component (0) | 2023.07.18 |
[스프링] 싱글톤 패턴 (0) | 2023.07.17 |