@Qualifier
어노테이션은 한정자로 어노테이션 기반 autowiring
미세 조정에서 설명합니다.
이 절의 예제는 autowire
후보를 해결할 때 @Qualifier
어노테이션과 사용자 정의 한정어 어노테이션(custom qualifier annotations)을 사용하여 세밀한 제어를 제공함을 보여줍니다.
이러한 예제는 XML
Bean
정의를 기반으로했기 때문에 한정자(qualifier) 메타 데이터는 XML
에서 Bean
요소의 한정자 또는 메타 하위 요소(sub-elements)를 사용하여 후보(candidate) Bean
정의에 제공됩니다.
구성 요소 자동 검색을 위한 클래스 경로 검색에 의존 할 때 후보 클래스에 한정자 메타 데이터에 유형 수준 어노테이션을 제공합니다.
다음 세 가지 예제에서는 이 기술을 보여줍니다.
@Component
@Qualifier("Action")
public class ActionMovieCatalog implements MovieCatalog {
// ...
}
@Component
@Genre("Action")
public class ActionMovieCatalog implements MovieCatalog {
// ...
}
@Component
@Offline
public class CachingMovieCatalog implements MovieCatalog {
// ...
}
대부분의 어노테이션 기반 대안에서와 마찬가지로 어노테이션 메타 데이터는 클래스 정의 자체에 바인딩되지만 XML을 사용하면 같은 유형의 여러 빈이 자신의 한정자 메타 데이터에 변형을 제공 할 수 있습니다.
왜냐하면 이는 해당 메타 데이터가 클래스별로 제공되는 것이 아니라 인스턴스별로 제공되기 때문입니다.