반응형
의존 관계를 주입할 수 있는 방법은 3가지다.
- 필드 주입
- setter 주입
- 생성자 주입
생성자가 단 1개라면, @Autowired 하지 않아도 스프링 컨테이너가 가지고 있는 스프링빈으로 의존관계를 주입해준다.
이렇다는 것은 스프링이 현재 생성자 주입을 통해 의존 관계를 설정해주는 것을 밀고 있다는 뜻이 아닐까?!
그렇다면, 왜 필드 주입 방법과 setter 주입 방법은 생성자 주입 방법에 밀린걸까!?
필드 주입 방법의 단점
- 생성자, setter 메서드를 통해 덮어쓰기가 가능하다.
- 테스트를 작성할 때, 스프링 컨테이너에게 의존하게 된다.
- 순환 참조를 실행시에 알 수 있다. (스프링버전 2.5 이후부터는 필드 주입도 순환 참조를 알 수 있음)
setter 주입 방법의 단점
- 외부에서 의도치 않게 값이 변경될 수 있다.
반응형
'프레임워크(Framework) > Spring' 카테고리의 다른 글
[Spring] Bean관리 누가할래? in TEST (@SpringBootTest @Test 알고 쓰기) (0) | 2024.07.30 |
---|---|
[Spring] DTO는 왜 필요할까? (0) | 2024.07.22 |
[Spring] Data Binding의 3가지 방법 (0) | 2024.07.22 |
[Spring] @Component 와 @Autowired를 통해 IoC실현하기 (0) | 2024.07.17 |
[Spring] 객체지향적인 개발을 하도록 도와주는 IoC와 DI (0) | 2024.07.16 |