1.4.5 Autowiring Collaborators by ys
auto wiring : spring 빈 설정을 최소한으로 할 수 있도록 하는 기능. 특정 빈을 지정하는 방식이 아닌, spring 프레임워크가 해당 방식에 맞는 spring빈을 자동으로 연결.
wiring : 의존성 주입을 통해 spring bean을 연결하는 것.
Spring 컨테이너는 협력 빈들 사이의 관계를 자동 연결 (autowire) 할 수있습니다. Spring이 ApplicationContext
의 내용을 검사함으로써 빈에 대한 협력 bean들을 자동으로 처리하도록 할 수있습다. Autowiring에는 다음과 같은 장점이 있습니다.
Autowiring은 프로퍼티나 생성자의 아규먼트를 지정할 필요성을 크게 줄여줍니다. ( 이점에 대해 이 장의 다른 곳에서 논의 된 bean 템플릿과 같은 다른 메커니즘도 역시 중요합니다.)
Autowiring은 객체의 발전처럼 설정을 업데이트 할 수 있습니다. 예를 들어 클래스에 의존성을 추가해야하는 경우 설정을 수정할 필요없이 해당 의존성을 자동으로 충족시킬 수 있습니다. 따라서 autowiring은 개발 중에 특히 유용합니다. 코드베이스가 보다 안정적인 상황해서 명시 적 연결하기위해 옵션을 변경 할 필요가 없습니다.
setter Injection 사용 시
Autowire 사용시
XML 기반의 설정 메타 데이터 ( Dependency Injection 참조 )를 사용할 때, <bean/>
의 요소 autowire
속성을 사용하여 Bean 정의에 대한 autowire 모드를 지정할 수있다 . autowiring 기능에는 네 가지 모드가 있습니다.
빈마다 autowiring을 지정하고 따라서 autowire를 선택할 수 있습니다. 다음 표에서는 네 가지 autowiring 모드에 대해 설명합니다.
표 2. 자동 배선 모드 | |
방법 | 설명 |
| (기본값) autowiring 없음. 빈 참조는 |
| 속성 이름에 의한 자동 연결. Spring은 autowired 할 필요가있는 프로퍼티와 같은 이름의 bean을 찾는다. 예를 들어 bean 정의가 이름으로 autowire로 설정되고 |
| 컨테이너 내에서 프로퍼티 타입과 정확히 일치하는 하나의 빈이있다면 프로퍼티를 자동연결합니다. 하나보다 많은 빈 존재하면 해당 빈에대해서는 byType 자동 연결을 사용하지 말아야 한다는 것을 말해주는 fatal 예외가 던져집니다. 일치하는 빈이 하나도 없다면 아무일도 일어나지 않습니다. ( 프로퍼티도 정의 되지 않습니다.) |
|
|