공부한 내용으로는 다음과 같다.
결론, 생성자 주입 방식을 사용하자.
의존성을 주입하는 방법으로 3가지가 있다.
1. 생성자 주입
2. 필드 주입(@Autowired
3. 수정자 주입(setter)
생성자 주입이 주는 장점
- 순환참조를 방지할 수 있다.
- 컴포넌트 간 의존성이 생긴다. A가 B를 참조, B가 A를 참조하는 경우 실행시 서로가 계속 호출될 수 있다. 하지만, 생성자 주입을 할 경우, 코드 실행 전 오류를 발견하여 사전에 알 수 있다(BeanCurrentlyInCreationException).
- 생성자 주입은 필드주입, 수정자 주입과 다르게 빈을 주입하는 순서가 다르다. 수정자 주입같은 경우, 받으려는 빈 생성자를 호출하여 빈을 찾거나 팩터리에 등록한 후 찾는다.
- 테스트 코드 작성이 편리하다.
- 필드를 final 로 선언할 수 있다.
- 불변(immutable)하다.
- 실행 중 객체가 변하는 것을 막을 수 있다.
- 오류를 사전에 방지할 수 있다.
'공부 > Spring' 카테고리의 다른 글
[Spring] @Transactional (0) | 2022.04.29 |
---|---|
[Spring] DB연동 없이 DB테스트 수행하기 (0) | 2022.04.29 |
[Spring](스프링 핵심 원리 - 기본편) 스프링 핵심 원리 이해1 - 예제 만들기 (0) | 2022.04.19 |
[Spring] SOLID (좋은 객체 지향 설계의 5가지 원칙) (0) | 2022.04.19 |
[Spring] 좋은 객체지향 프로그래밍이란? (0) | 2022.04.19 |
댓글