【发布时间】:2019-05-27 13:29:17
【问题描述】:
使用 Spring,您可以拥有某种组合注释。一个突出的例子是@SpringBootApplication-annotation,它是@Configuration、@EnableAutoConfiguration和@ComponentScan的组合。
我正在尝试获取受某个注释影响的所有 Bean,即ComponentScan。
按照this 的回答,我正在使用以下代码:
for (T o : applicationContext.getBeansWithAnnotation(ComponentScan.class).values()) {
ComponentScan ann = (ComponentScan) o.getClass().getAnnotation(ComponentScan.class);
...
}
这不起作用,因为并非所有由 getBeansWithAnnotation(ComponentScan.class) 返回的 bean 确实都使用该注释进行了注释,因为那些是例如带有@SpringBootApplication 注释的(通常)不是。
现在我正在寻找某种通用方式来检索注释的值,即使它只是作为另一个注释的 piece 添加。 我该怎么做?
【问题讨论】:
标签: java spring spring-annotations