IOC容器源码解读笔记(spring 5.0.X)

2019-07-17  本文已影响0人  白桦树97

一:举一个最简单的例子()

AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(AppConfig.class);
        System.out.println(ac.getBean(DeviceService.class));

二:这段代码内部实现原理如图所示


image.png

1.调用构造方法

public AnnotationConfigApplicationContext(Class<?>... annotatedClasses) {
        this();    //调用父类构造方法  创建默认工厂 this.beanFactory = new DefaultListableBeanFactory();
        register(annotatedClasses); //注册spring原有必须的bean 看以看到beanFactory中的BeanDefinitionMap 和 BeanDefinitionNames 都有了值
        refresh();   //注册并实例化普通的bean,最终存储在beanFactory中的SingleonObjects中。
    }

其它:

上一篇 下一篇

猜你喜欢

热点阅读