1.根据包名取得BeanDefinition
主要的工具类:ClassPathScanningCandidateComponentProvider ,示例如下:
ClassPathScanningCandidateComponentProvider scanner = new ClassPathScanningCandidateComponentProvider(false);
//scanner.addExcludeFilter(new AnnotationTypeFilter(Service.class));
scanner.addIncludeFilter(new AssignableTypeFilter(TaskService.class));
Set<BeanDefinition> set = scanner.findCandidateComponents("com.test.service");
for(BeanDefinition bean : set){
System.out.println(bean.getBeanClassName());
}
2.根据包名取得符合条件的class
根据ClassPathScanningCandidateComponentProvider 改写: