스프링 핵심 원리
[spring]다양한 의존관계 주입 방법
notx2wice
2021. 11. 1. 17:41
1.생성자 주입
-생성시점 단 한번 호출 되는 것이 보장
-불변, 필수 의존관계에 사용
-컴파일 시점에 어떤 문제가 있는지 파악하기 쉬움
2.수정자 주입 (setter에다 @autowired)
- 선택 , 변경 가능성이 있는 의존관계에 사용
3.필드 주입
-변수 자체에 @autowired
-하지만 권장 되지 않는 안티 패턴 -> 테스트시 주입 대상 변경 불가.
-Di 프레임워크가 없으면 아무것도 할 수 없다.
4.일반 메서드 주입
-한번에 여러필드를 주입 받을 수 있다.
**tip
생성자가 단 하나인 component의 경우 자동으로 @autowired된다. 당연하게 스프링 빈 한정이다.!!
@autowired-> 객체의 주입이 필요한 대상임을 표시
@autowired 의 기본동작은 주입 할 대상이 없으면 오류를 발생시킨다. -> @Autowired(required= false)로 주면 해결 할 수 있다.
의존관계 자동 주입은 스프링 컨테이너가 관리하는 스프링 빈이어야 동작한다.