Java Spring里getBean方法的实现

112 阅读1分钟

位于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实例创建完毕:

要获取更多Jerry的原创文章,请关注公众号"汪子熙":