栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Spring 框架 组件过滤器(三)

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Spring 框架 组件过滤器(三)

1. 组建过滤器

一共有五种过滤器,我这边只举两个例子

 

1.1 自定义组件过滤器
public class Myfilter implements TypeFilter {
    @Override
    public boolean match(MetadataReader metadataReader, MetadataReaderFactory metadataReaderFactory) throws IOException {
        ClassMetadata classMetadata = metadataReader.getClassMetadata();
        String className = classMetadata.getClassName();
        System.out.println(className);
        return true;
    }
}

配置类这么写

@ComponentScan(value = "com.zx",
excludeFilters = @ComponentScan.Filter(
type = FilterType.CUSTOM,classes = {Myfilter.class}))
@Import(DruidConfig.class)
@Order(2)
public class SpringConfig {
    @Bean
    public String getName2(){
        System.out.println("SpringConfig--------");
        return "";
    }
}
 2.自定义导入器

我们在实际开发中会有很多类需要让spring管理,那么我们一个一个的加会很麻烦,那么有没有一个导入器可以一下子全部加入呢?实际上是有的,但是实际工作中我遇见的很少。这边仅做了解

//这个类得用import导入,直接用注解好像不行
public class MyImportSelector implements ImportSelector {

    @Override
    public String[] selectImports(AnnotationMetadata importingClassMetadata) {
       //这边不能带文件名后缀,不然会找不到切记
        ResourceBundle resourceBundle = ResourceBundle.getBundle("import");
        String className = resourceBundle.getString("className");
        return new String[]{className};
    }
}
3.自定义注册器

就是讲一下替代ComponentScan功能的类,看如下代码

public class MyImportBeanRegister implements ImportBeanDefinitionRegistrar {
    @Override
    public void registerBeanDefinitions(AnnotationMetadata importingClassMetadata, BeanDefinitionRegistry registry) {
        ClassPathBeanDefinitionScanner scanner = new ClassPathBeanDefinitionScanner(registry,true);
        scanner.scan("com.zx");
    }
}

 4.bean的初始化过程解析

下面我将这三个都演示一下

4.1 BeanFactoryPostProcessor  4.2 BeanPostProcessor

 4.3InitializingBean

 5.总结

至此springioc 所有的内容都已经介绍完成了,后面会接着介绍aop相关的内容。这边都是比较浅显的理解,深入的话需要花费一定的功夫才行。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/996069.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号