设为首页 加入收藏

TOP

Spring 源码总结
2019-08-26 06:45:38 】 浏览:10
Tags: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事件监听器源码

】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇Mac安装Homebrew的那些事儿 下一篇java秒杀系列(1)- 秒杀方案总体..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目