지금까지는 xml을 이용해서 생성자, setter를 사용한 주입을 알아보았다.
빈 객체를 한개한개씩 아이디 지정하여 넣어주지 않아도 자동으로 주입할 수 있는 자동 주입에 대해서 알아보겠다.
자동주입은 기본 자료형에서는 동작하지 않고, 사용자 지정 객체타입에서만 동작한다.
특정클래스를 가지고 만든 객체의 주소값을 담는 참조변수같은 경우 자동으로 주입 가능하는 뜻이다!!
1. 이름을 통한 주입
이름을 통한 주입을 하기위해서는 bean태그의 속성에 autowire="byName" 를 추가해 주면 된다. 어떤식으로 사용해야 자동으로 주입을 해주는지 코드를 살펴보자.
다음과 같이 TestBean4라는 이름의 클래스를 정의하였다.
id가 data1, data2인 빈을 정의한 후, autowire="byName" 이라는 속성을 넣어주면 이름으로 빈을 찾아서 자동으로 TestBean4의 data1, data2에 각각 주입을 해준다.
실행하면 정상적으로 출력되는 모습을 볼 수 있었다.
2. 타입을 통한 주입
타입을 통한 주입을 하기위해서는 bean태그의 속성에 autowire="byType" 를 추가해 주면 된다.
다음과 같이 TestBean5를 정의하였다.
클래스 타입으로 찾을 것이기 때문에 굳이 id를 설정해주지 않았다.
DataBean2 타입으로 만들어진 bean이 있고, auto2에 autowire="byType"하였기 때문에 빈의 타입으로 알아서 자동주입된다.
실행하면 정상적으로 출력되는 모습을 볼 수 있었다.
'JAVA > Spring' 카테고리의 다른 글
Java를 이용한 Bean 객체 주입 (0) | 2020.04.10 |
---|---|
Java코드를 활용한 Bean 등록 (0) | 2020.04.10 |
컬렉션 주입 (0) | 2020.04.09 |
의존성 주입 (Dependency Injection) (0) | 2020.04.09 |
Bean 객체의 생성시점과 생명주기 (0) | 2020.04.08 |