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