0
어노테이션 기반 구성 요소 검색을 수행하는 동안 한정자를 적용하는 방법이 있습니까?스프링 어노테이션 및 한정어 기반 검색
나는 내 맞춤 주석으로 주석 처리 된 두 개의 클래스가 있습니다 (MyAnnotation
). 무엇 내가하고 싶은
@MyAnnotation
public class ClassOne {
}
@MyAnnotation
public class ClassTwo {
}
@Configuration
@ComponentScan(basePackages = { "common" }, useDefaultFilters = false, includeFilters = { @ComponentScan.Filter(type = FilterType.ANNOTATION, value = MyAnnotation.class) })
public class ClassProvider {
}
는, 사용자로부터 어떤 입력을 말하는 선택적으로 일부 조건에 따라이 주석으로 클래스의 부분 집합을 스캔 할 수 있습니다. 단지 ClassOne
스캔됩니다 그래서
@MyAnnotation (qualifier = "one")
public class ClassOne {
}
@MyAnnotation (qualifier = "two")
public class ClassTwo {
}
@Configuration
@ComponentScan(basePackages = { "common" }, useDefaultFilters = false, includeFilters = { @ComponentScan.Filter(type = FilterType.ANNOTATION, value = MyAnnotation.class, qualifier = "one") })
public class ClassProvider {
}
-
는이 같은 뭔가를 주석과 함께 규정을 지정하고 또한 구성 요소 검색 필터를 지정 말할 수 있습니까?
감사합니다; 나는 그것이 내가 찾고 있었던 것이라고 생각한다. 주석에 대한 한정자 값을 동적으로 설정하고 싶습니다.하지만 스프링 특유의 질문보다 표준 자바 주석 질문에 더 가깝습니다. – Kesh
멋지지만, [Spring profile] (http://docs.spring.io/spring/docs/current/spring-framework-reference/htmlsingle/#beans-definition-profiles)을 사용하고 싶지 않은가? -java)를 지원합니까? –
프로필을 실제로 사용하지는 않았지만 그 옵션은 훨씬 좋아졌습니다. 내가 사용했다면 커스텀'TypeFilter'를 구현할 필요가 없을 것입니다. 구성이나 구성 요소와 같은 다른 주석을 수반 할 필요가 없다는 점에서 나는 맞습니까? 지정된 프로필이 활성화되어 있지 않으면 구성 요소 스캐너가 클래스를 검색하지 않습니다. – Kesh