位于DefaultListableBeanFactory:getBean
AbstractBeanFactory.java: doGetBean
Beans.xml里如无特殊声明,定义的bean默认都是singleton,故执行310行的getSingleton:
虽然方法名称为get,但是注释写得很清楚,如果Bean尚未被注册,就register a new one:
准备创建名为dataSource的singleton bean了:
奥妙在这个singletonFactory里:
终于看到createBean了:
在AbstractAutowireCapableBeanFactory里,执行doCreateBean:
createBeanInstance:
使用反射机制,准备实例化Bean实例:
调用无参构造函数:
BeanUtils.instantiateClass:
调用栈:
开始执行构造函数了:
bean实例创建完毕: