스프링 핵심 원리

[spring]다양한 의존관계 주입 방법

notx2wice 2021. 11. 1. 17:41

1.생성자 주입

-생성시점 단 한번 호출 되는 것이 보장

-불변, 필수 의존관계에 사용

-컴파일 시점에 어떤 문제가 있는지 파악하기 쉬움

2.수정자 주입 (setter에다 @autowired)

- 선택 , 변경 가능성이 있는 의존관계에 사용

3.필드 주입

-변수 자체에 @autowired 

-하지만 권장 되지 않는 안티 패턴 -> 테스트시 주입 대상 변경 불가.

-Di 프레임워크가 없으면 아무것도 할 수 없다.

 

4.일반 메서드 주입

-한번에 여러필드를 주입 받을 수 있다.

 

 

**tip

생성자가 단 하나인 component의 경우 자동으로 @autowired된다. 당연하게 스프링 빈 한정이다.!!

@autowired-> 객체의 주입이 필요한 대상임을 표시

@autowired 의 기본동작은 주입 할 대상이 없으면 오류를 발생시킨다. -> @Autowired(required= false)로 주면 해결 할 수 있다.

의존관계 자동 주입은 스프링 컨테이너가 관리하는 스프링 빈이어야 동작한다.