添加链接描述spring 创建bean之前准备原理调用refresh方法 中 先执行 prepareReresh 方法
点进去看源码
spring 创建bean之前准备原理
接着往下执行
spring 创建bean之前准备原理
初始话属性设置 点进去看源码 发现是空实现方法 专门给子类继承实现,自定义定制属性
spring 创建bean之前准备原理
检验属性是否合法

创建监听容器和事件容器_
spring 创建bean之前准备原理
1.preparerefresh 的主要工作就是创建设置一些属性,建炎属性 合法性 并且
创建容器
接下来,获取bean工厂

spring 创建bean之前准备原理
刷新bean工厂,就是创建 一个 beanfactory对象 并给 beanfactory设置一个***
并且放回刚刚genaricbeanfactory创建的 对象
spring 创建bean之前准备原理
spring 创建bean之前准备原理
第三步就是 beanfactory的欲准备工作 对其进行一些属性设置,点进去看源码
spring 创建bean之前准备原理
设置类加载器
解析器,等等组件
添加部分beanpostProcessor()spring 创建bean之前准备原理
设置忽略的依赖自动注入接口
注册可以解析的自动装配
直接在任何组件中都可以注入下面这些类
注册环境变量 属性

spring 创建bean之前准备原理

spring 创建bean之前准备原理
spring 创建bean之前准备原理
第四步 点进去发现是个空方法 ,可以自定义子类实现 ,
可以自己控制在 beanfactory前后 进行 对 beanfactory的 操作
spring 创建bean之前准备原理
spring 创建bean之前准备原理
##前四部主要是对beanfactory的准备工作
=========================================================
第五步 执行beanfacotrypostprocessor

spring 创建bean之前准备原理

spring 创建bean之前准备原理
spring 创建bean之前准备原理
调用此方法,点金去
spring 创建bean之前准备原理
先得到所有的postprecessor
spring 创建bean之前准备原理
遍历所有的processor
spring 创建bean之前准备原理
首先要根据优先级去 判断是否要容器
spring 创建bean之前准备原理
点金此方法
spring 创建bean之前准备原理
spring 创建bean之前准备原理
第六步:拦截bean创建 后置处理器
spring 创建bean之前准备原理
先获取所有的 beanpostprocessor
spring 创建bean之前准备原理
spring 创建bean之前准备原理
不同的 beanpostprocessor在 bean创建前后的执行顺序是不一样的
从代码中可以看出 postprofecor都有优先级
spring 创建bean之前准备原理
spring 创建bean之前准备原理
放入各自优先级容器中
spring 创建bean之前准备原理
在一个个按优先级 注册到容器中
spring 创建bean之前准备原理

第七步:进步国际化资源解析
spring 创建bean之前准备原理
第八部:初始化事件派发器
spring 创建bean之前准备原理
第九部:子类重写这个方法,在容器中刷新时可以 自定义
spring 创建bean之前准备原理
第十步:注册监听

spring 创建bean之前准备原理
完成初始化剩下的所有单实例bean
spring 创建bean之前准备原理
spring 创建bean之前准备原理
代码逻辑如下:创建剩余的bean
spring 创建bean之前准备原理
spring 创建bean之前准备原理
spring 创建bean之前准备原理

相关文章:

  • 2022-01-01
  • 2021-05-18
  • 2021-09-26
  • 2021-10-13
  • 2021-07-07
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-11-20
  • 2021-10-17
  • 2022-12-23
  • 2022-01-30
  • 2022-12-23
  • 2022-01-11
  • 2022-01-04
相关资源
相似解决方案