zoukankan      html  css  js  c++  java
  • Spring源码窥探之:ImportSelector

    1. 编写实现ImportSelector的类

    /**
     * @author 70KG
     * @Title: SelectImportBean
     * @Description:
     * @date 2018/7/22下午4:59
     * @From www.nmyswls.com
     */
    public class SelectImportBean implements ImportSelector {
    
        @Override
        public String[] selectImports(AnnotationMetadata annotationMetadata) {
            return new String[]{"com.nmys.story.springCore.springioc.importBean.Fish","com.nmys.story.springCore.springioc.importBean.Pig"};
        }
    
    }

    2. 编写配置类

    /**
     * @author 70KG
     * @Title: Config
     * @Description:
     * @date 2018/7/22下午4:41
     * @From www.nmyswls.com
     */
    @Configuration
    // 会自动向容器中加入实例化后的bean,默认的id是bean的全类名
    @Import(value = {Dog.class, Cat.class, SelectImportBean.class})
    public class ImportBeanConfig {
    
    
    }

    3. 测试类

    public class Test01 {
    
        @Test
        public void test() {
    
            // IOC容器创建(容器类似一个Map)
            AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(ImportBeanConfig.class);
    
            System.out.println("IOC容器初始化完成。。。。。");
    
            // 从容器中获取所有的bean的ID
            String[] definitionNames = ac.getBeanDefinitionNames();
    
            for (String name : definitionNames) {
                System.out.println("------->" + name);
            }
    
        }
    }

    4. 测试结果

    IOC容器初始化完成。。。。。
    ------->org.springframework.context.annotation.internalConfigurationAnnotationProcessor
    ------->org.springframework.context.annotation.internalAutowiredAnnotationProcessor
    ------->org.springframework.context.annotation.internalRequiredAnnotationProcessor
    ------->org.springframework.context.annotation.internalCommonAnnotationProcessor
    ------->org.springframework.context.event.internalEventListenerProcessor
    ------->org.springframework.context.event.internalEventListenerFactory
    ------->importBeanConfig
    ------->com.nmys.story.springCore.springioc.importBean.Dog
    ------->com.nmys.story.springCore.springioc.importBean.Cat
    ------->com.nmys.story.springCore.springioc.importBean.Fish
    ------->com.nmys.story.springCore.springioc.importBean.Pig

    5. ImportSelector用于向容器中导入指定的类。

  • 相关阅读:
    行业观察(五)| 服装零售企业数字化升级要“落地有数”
    奇点云 x 阿里云 | 联合发布综合体数字化转型与数据创新解决方案
    StartDT_AI_Lab | 开启“数据+算法”定义的新世界
    奇点云数据中台技术汇(六)| 智能算法助力企业效率升级
    从《长安十二时辰》看企业中台战略
    django1.9版本数据库建立
    django中html文件的配置
    python的django建立项目
    python 读取excel表格的数据
    python创建excel表格比并存入数据
  • 原文地址:https://www.cnblogs.com/zhangjianbing/p/10114148.html
Copyright © 2011-2022 走看看