IOC的底层实现非常的复杂,在面试时被问到谈谈IOC的底层实现该如何回答呢。因为小庄也是应届生,最近正在整理一些自己的理解,同时希望对您也有所帮助。
主要要体现出一些重点,例如一些重要的类及方法,以及名词等。createBeanFactory、getBean、doGetBean、createBean、doCreateBean、populateBean
一、谈谈IOC的底层实现
(1) 调用createBeanFactory,创建一个Bean工厂。(DefualtListableBeanFactory);
(2) 开始循环创建对象,因为容器中默认是单例Bean,所以首先通过getBean,doGetBean方法去容器中查找对应的Bean;
(3)若在容器中找不到对应的Bean,则会通过createBean、doCreateBean方法以反射的方式创建Bean对象。反射会调用到getDeclaredConstructor和newInstance方法;
(4)调用pupolateBean方法进行对象的属性赋值;
(5)最后再进行其他的一些初始化操作。