개발공부/[spring]김영한_스프링입문

의존관계 주입 방법에는 뭐가 있을까?

개발자 덕구🐾 2022. 8. 8. 01:07
728x90

 

 

 

 

의존관계 주입 방법에는 4가지가 있다. 

 

 

1. 생성자 주입

2. 수정자 주입

3. 필드 주입

4. 일반 메서드 주입 

 

 

 

스프링은 스프링 빈 등록 단계의존관계 주입 단계로 나뉘어져있다. 

 

 

1. 생성자 주입 

 

1) 스프링이 컴포넌트 스캔을 한다. 

2) @Component가 붙은 메서드를 스프링 빈에 등록한다.

3) 스프링 빈에 등록하기위해서는 생성자를 호출해야한다.

4) 생성자를 호출하러 갔는데 @Autowired가 붙어있다.

5) 이는 생성자의 파라미터이 있는 것들을 스프링 컨테이너에서 스프링 빈을 갖고와서 주입해준다. 

 

호줄 시점에 딱! 1번만 호출된다는 특정이 있고 불변, 필수 의존관계에서 사용된다.

만일 생성자가 1개만 있으면 @Autowired를 생략해도 된다. 

 

 

2. 수정자 주입

생성자 대신 (생성자를 없애고) 수정자 메서드를 만드고 그 메서드에 @Autowired를 붙이는 방법이다. 

수정자 메서드의 이름은 set~~ 으로 설정한다. 

 

이렇게 setter를 만들고 autowired 어노테이션을 붙여주면 의존관계 자동 주입이 발생한다. 

 

 

 

선택,  변경이 가능하다는 특징이 있다. 

 

 

3. 필드 주입 

 

이름 그대로 필드에 바로 주입하는 방법이다. 

순수한 테스트를 만들 수 없으므로 사용하지 말자!

 

 

4. 일반 메서드 주입 

일반 메서드를 통해서 주입받는다. 일반적으로 잘 사용하지 않는다. 

 

 

반응형