注:spring启动中,对于一个bean,是先实例化后初始化,两者的区别在于,实例化是生成bean,初始化是给bean赋上属性。
refresh()
关于refresh()方法,可以阅读下面这篇文章(文章很长,需要耐心阅读):
Spring IOC 容器源码分析:https://javadoop.com/post/spring-ioc
同时,基于上面的文章进行一些补充
createBean三部曲
1 创建 Bean 实例 createBeanInstance()
详见:https://blog.csdn.net/finalcola/article/details/81451019
2 bean 属性注入 populateBean()
关于populateBean,详见:https://blog.csdn.net/qwe6112071/article/details/85225507
而关于内部有一个类型转换的方法convertForProperty,详见https://www.jianshu.com/p/1d52242de33e
3 初始化Bean initializeBean()
https://blog.csdn.net/u010634066/article/details/80363793