美文网首页
Spring之ImportSelector接口

Spring之ImportSelector接口

作者: engineer_tang | 来源:发表于2022-03-02 22:22 被阅读0次

    1. 简介

    接口由类型实现,这些类型根据给定的选择标准(通常是一个或多个注释属性)确定应导入哪个@Configuration类。
    ImportSelector可以实现以下任何感知接口,在selectImports之前将调用它们各自的方法:
    EnvironmentAware
    BeanFactoryAware
    BeanClassLoaderAware
    ResourceLoaderAware
    或者,该类可以为单个构造函数提供以下一种或多种受支持的参数类型:
    Environment
    BeanFactory
    ClassLoader
    ResourceLoader
    ImportSelector实现的处理方式通常与常规@Import注释相同,但是,也可以推迟选择导入,直到所有@Configuration类都已处理完毕(有关详细信息,请参阅DeferredImportSelector)。

    2. 接口分析

    public interface ImportSelector {
    
        String[] selectImports(AnnotationMetadata importingClassMetadata);
    
        @Nullable
        default Predicate<String> getExclusionFilter() {
            return null;
        }
    
    }
    

    2.1 selectImports方法

    根据importing@Configuration类的注解元数据,选择并返回应导入的类的名称。
    返回:类名,如果没有,则为空数组

    2.2 getExclusionFilter方法

    这是接口的默认实现方法,返回一个谓词,用于从导入候选对象中排除类,该谓词可传递地应用于通过该选择器的导入找到的所有类。
    如果该谓词对于给定的完全限定类名返回true,则该类将不会被视为导入的配置类,从而绕过类文件加载和元数据自省。
    返回:传递导入的配置类的完全限定候选类名的筛选器谓词,如果没有,则为null

    相关文章

      网友评论

          本文标题:Spring之ImportSelector接口

          本文链接:https://www.haomeiwen.com/subject/uggerrtx.html