728x90
14. 자동 주입
지금까지 Bean을 정의할 때 주입할 객체는 생성자를 통한 주입이나 setter를 통한 주입을 사용했다.
스프링에서는 객체를 주입할 때 자동으로 주입될 수 있도록 설정할 수 있는데,
이름, 타입, 생성자를 통해 가능하며 이것을 auto wire라고 한다.
기본자료형(정수, 실수, 문자열)은 자동주입이 불가능하며 기존의 방식으로 주입해야 한다. 자동주입은 객체만 가능하다.
1) 이름을 통한 주입
xml파일에 id값을 지정해주면 , 변수에 바로 넣는게 아니고 setter메소드를 호출하여 주입해준다.
일반주입과 이름을 통한 자동주입을 비교해보자.
2) 타입을 통한 주입
타입을 통한 자동주입은 , 타입만 같으면 무조건 주입하기 때문에 id값은 생략 가능하다.
3) 생성자를 통한 주입
이렇게 xml파일에 생성자의 매개변수 타입과 정의된 빈의 타입이 일치할 경우 , autowire='constructor' 를 사용하여 생성자자동주입을 할 수 있다 (?)
이때, 객체가 아닌 정수값이나 문자열은 자동 주입이 안되기 때문에 아래처럼 직접 정의 해 줘야 한다.
이때 디폴트 값으로 byName을 지정하고 싶으면 default-autowire="byName" 을 지정해준다.
디폴트 값을 무시하고 싶다면, autowire='no' 를 적어주자.
출처 : [인프런]윤재성의 스프링 프레임워크 개발자를 위한 실습을 통한 입문 과정
'IT 강의 정리 > 윤재성의 스프링 입문' 카테고리의 다른 글
[섹션4][Annotation] 16강~19강 init, destroy 메서드/ 주입/ 어노테이션을 이용한 빈 설정/ JSR-250어노테이션 (0) | 2022.10.12 |
---|---|
[섹션4][Annotation] 15강 Java코드를 활용한 Bean등록 (0) | 2022.10.11 |
[섹션3][DI] 13강 컬렉션 주입 (0) | 2022.10.10 |
[섹션3][DI] 11~12강 생성자를 통한 주입/ Setter메서드를 통한 주입 (0) | 2022.10.10 |
[섹션2][IoC] 07~10강 IoC컨테이너/ 빈 객체 생성하기/ 빈 객체의 생명주기/ BeanPostProcessor (0) | 2022.10.07 |