Spring源码窥探之:ImportSelector
Posted 在谷歌上百度
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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用于向容器中导入指定的类。
以上是关于Spring源码窥探之:ImportSelector的主要内容,如果未能解决你的问题,请参考以下文章
RocketMQ源码分析之从官方示例窥探:RocketMQ事务消息实现基本思想