ClassPathScanningCandidateComponentProvider工具类的使用(findCandidateComponents方法)

ClassPathScanningCandidateComponentProvider工具类的简单使用

1、扫描包资源

先简单的尝试下发现组件功能

 public static void main(String[] args) throws Exception{
        
		//1创建对象,参数先写false
        ClassPathScanningCandidateComponentProvider classPathScanningCandidateComponentProvider = new ClassPathScanningCandidateComponentProvider(false);
        //2、查找定义信息集合
        Set<BeanDefinition> candidateComponents = classPathScanningCandidateComponentProvider.findCandidateComponents("com.alibaba");
        System.out.println(candidateComponents);
    }

1、创建对象,构造方法如下,如果参数为true则会调用注册默认过滤器方法
在这里插入图片描述
1.1、看下这个注册默认过滤器方法
在这里插入图片描述
2、查找定义信息集合

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
2、excludeFilters和includeFilters是该工具类的属性集合,可调用addXX方法添加
在这里插入图片描述
在这里插入图片描述
3、看下AnnotationTypeFilter这个类继承AbstractTypeHierarchyTraversingFilter

在这里插入图片描述
其中AnnotationTypeFilter的matchSelf方法如下,根据注解名字进行匹配
在这里插入图片描述

总结:我们可使用AnnotationTypeFilter结合ClassPathScanningCandidateComponentProvider去获取我们想类信息,jpa在扫描类时运用了此工具类


版权声明:本文为luoxiaomei999原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。