728x90
의존관계 주입 방법에는 4가지가 있다.
1. 생성자 주입
2. 수정자 주입
3. 필드 주입
4. 일반 메서드 주입
스프링은 스프링 빈 등록 단계와 의존관계 주입 단계로 나뉘어져있다.
1. 생성자 주입
1) 스프링이 컴포넌트 스캔을 한다.
2) @Component가 붙은 메서드를 스프링 빈에 등록한다.
3) 스프링 빈에 등록하기위해서는 생성자를 호출해야한다.
4) 생성자를 호출하러 갔는데 @Autowired가 붙어있다.
5) 이는 생성자의 파라미터이 있는 것들을 스프링 컨테이너에서 스프링 빈을 갖고와서 주입해준다.
호줄 시점에 딱! 1번만 호출된다는 특정이 있고 불변, 필수 의존관계에서 사용된다.
만일 생성자가 1개만 있으면 @Autowired를 생략해도 된다.
2. 수정자 주입
생성자 대신 (생성자를 없애고) 수정자 메서드를 만드고 그 메서드에 @Autowired를 붙이는 방법이다.
수정자 메서드의 이름은 set~~ 으로 설정한다.
이렇게 setter를 만들고 autowired 어노테이션을 붙여주면 의존관계 자동 주입이 발생한다.
선택, 변경이 가능하다는 특징이 있다.
3. 필드 주입
이름 그대로 필드에 바로 주입하는 방법이다.
순수한 테스트를 만들 수 없으므로 사용하지 말자!
4. 일반 메서드 주입
일반 메서드를 통해서 주입받는다. 일반적으로 잘 사용하지 않는다.
반응형
'개발공부 > [spring]김영한_스프링입문' 카테고리의 다른 글
[window]H2 Database 이용법 (0) | 2022.08.09 |
---|---|
Thymleaf가 뭔데? (0) | 2022.08.09 |
싱글톤과 스프링 컨테이너 (0) | 2022.08.04 |
스프링 컨테이너와 스프링 빈_(feat.BeanDefinition) (0) | 2022.08.04 |
DI(의존관계 주입)와 DI 컨테이너 (0) | 2022.08.04 |