1.10.8 annotation과 함께 한정된 메타데이터 제공

@Qualifier 어노테이션은 Section “qualifiers를 사용한 어노테이션 기반 자동연결의 미세조정”에서 이야기했습니다. 해당 섹션의 예제들은 자동연결 후보를 처리할 때 세밀한 제어를 제공하는 @Qualifier어노테이션과 커스텀 qualifier 어노테이션의 사용방법을 보여줍니. 이 예제들은 XML 빈 정의에 기반하기 때문에 qualifier 메타데이터는 XML의bean 요소의 하위요소로 qualifier또는 meta 사용하는 후보 빈 정의에서 제공된됩니다. 컴포넌트 자동탐지를 클래스패스에 기반해서 스캔할 때는 후보 클래스의 타입레벨 어노테이션으로 qualifier 메타데이터를 제공 합니다. 다음 세 가지 예제는 이러한 기법을 보여줍니다.

@Component
@Qualifier("Action")
public class ActionMovieCatalog implements MovieCatalog {
    // ...
}
@Component
@Genre("Action")
public class ActionMovieCatalog implements MovieCatalog {
    // ...
}
@Component
@Offline
public class CachingMovieCatalog implements MovieCatalog {
    // ...
}

어노테이션에 기반한 대부분의 대체방법들 처럼 어노테이션 메타데이터는 클래스 정의 자체와 밀접한 관계가 된다는 것을 기억해야 한다. 반면 XML을 사용하면 해당 메타데이터가 클래스마다가 아니라 인스턴스마다 제공되기 때문에 qualifier 메타데이터에서 다양함을 제공하기 위해 같은 타입의 여러 가지 빈을 사용할 수 있다.

Last updated