Spring-是否可以获取所有通过@ComponentScan注册的软件包?

是否可以获取在@ComponentScan中注册的所有软件包的列表?我需要知道,Spring Boot应用程序中已经注册了哪些(根?)软件包…

回答:

可能的解决方案- 在运行时扫描Java批注

采用

org.springframework.context.annotation.ClassPathScanningCandidateComponentProvider

API

组件提供程序,它从基本程序包扫描类路径。然后,它将排除和包括过滤器应用于结果类以查找候选对象。

ClassPathScanningCandidateComponentProvider scanner =

new ClassPathScanningCandidateComponentProvider(<DO_YOU_WANT_TO_USE_DEFAULT_FILTER>);

scanner.addIncludeFilter(new AnnotationTypeFilter(<TYPE_YOUR_ANNOTATION_HERE>.class));

for (BeanDefinition bd : scanner.findCandidateComponents(<TYPE_YOUR_BASE_PACKAGE_HERE>))

System.out.println(bd.getBeanClassName());

以上是 Spring-是否可以获取所有通过@ComponentScan注册的软件包? 的全部内容, 来源链接: utcz.com/qa/414211.html

回到顶部