Spring 源码总结

2019-08-16 12:23:40来源:博客园 阅读 ()

新老客户大回馈,云服务器低至5折

Spring 源码总结

refresh()

1. prepareRefresh()

刷新预处理

  1. 设置容器状态为 active
  2. 初始化属性配置,空方法,可以重写这个方法来自定义属性
  3. 属性配置校验,也是空的
  4. 缓存容器中早期事件监听器

2. obtainFreshBeanFactory()

获取 BeanFactory

  1. 创建 DefaultListableBeanFactory,并设置 serializationId
  2. 返回上一步创建的 BeanFactory,此时只有一些默认的配置

3. prepareBeanFactory(beanFactory)

BeanFactory 预准备

  1. 设置 BeanFactory 的类加载器、表达式解析器等
  2. 添加 BeanPostProcessor
  3. 忽略指定的自动装配依赖接口
  4. 注册能够自动装配的组件、默认的环境配置等

4. postProcessBeanFactory(beanFactory);

可以重写这个方法来在 BeanFactory 准备完成后执行一些操作

5. invokeBeanFactoryPostProcessors(beanFactory);

执行 BeanDefinitionRegistryPostProcessor、BeanFactoryPostProcessor。Spring 后置处理器源码

6. registerBeanPostProcessors(beanFactory);

执行 BeanPostProcessor。Spring 后置处理器源码

7. initMessageSource();

初始化 MessageSource,用于国际化配置等

  1. 从容器获取 MessageSource 组件
  2. 如果容器中不存在,则默认设置为 DelegatingMessageSource

8. initApplicationEventMulticaster();

初始化事件派发器。Spring事件监听器源码

9. onRefresh();

可以重写这个方法来在容器刷新时执行一些操作

10. registerListeners();

添加 ApplicationListener 监听器。Spring事件监听器源码

11. finishBeanFactoryInitialization(beanFactory);

  1. 初始化剩余的非懒加载单例 Bean。Spring 后置处理器源码
  2. 添加 @EventListener 监听器。Spring事件监听器源码

12. finishRefresh();

刷新完成,给监听器发布事件。Spring事件监听器源码


原文链接:https://www.cnblogs.com/bigshark/p/11337401.html
如有疑问请与原作者联系

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:简单设计企业级JOB平台

下一篇:Maven多模块项目打包前的一些注意事项(打包失败)