摘要:
代码片段: org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory#populateBean if (!mbd.isSynthetic() && hasInstantiationAwareBeanPos 阅读全文
摘要:
属性扫描完成之后, 就可以开始属性注入了. 代码块: org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory#doCreateBean boolean earlySingletonExposure = 阅读全文
摘要:
创建完对象之后, 接下来, 就应该想办法对属性进行注入了, 其中就包括 @Autowired 注入 但是在注入之前, 貌似 还没有对 @Autowired 进行扫描和解析. 代码块: if (instanceWrapper == null) { /** * 创建 bean 实例,并将实例包裹在 Be 阅读全文
摘要:
spring在创建对象(org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory#createBeanInstance)的时候, 使用了这个 构造函数后置处理器, 用来选择使用哪个构造函数的. 所以这个后 阅读全文
摘要:
接着前面, 看完构造函数前的后置处理器, 就到 doCreateBean 方法了. protected Object doCreateBean(final String beanName, final RootBeanDefinition mbd, final @Nullable Object[] 阅读全文
摘要:
在 createBean 方法中, doCreateBean 方法前, 调用了这样一句代码: org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory#createBean // Give BeanPos 阅读全文
摘要:
由于 getBean 内容比较多, 所以单独出来, 接着上一篇的顺序来看. //org.springframework.beans.factory.support.AbstractBeanFactory#getBean @Override public Object getBean(String n 阅读全文
摘要:
执行完前面的步骤后, 回到 org.springframework.context.support.AbstractApplicationContext#refresh 方法. @Override public void refresh() throws BeansException, Illega 阅读全文
摘要:
EventListenerMethodProcessor 是 BeanFactory 的一个后置处理器, 用来对 @EventListener 提供支持. 主要是标注了 @EventListener 的方法进行解析, 然后转换为一个 ApplicationListener. 1. 在 refresh 阅读全文
摘要:
demo和 springIOC - ConfigurationClassPostProcessor - full / lite 里面是同一个. 暂且先不管 full , lite 有什么作用, 也不管spring是如何做到的, 如果是自己做, 怎么可以实现那种效果. demo: public cla 阅读全文