spring 创建bean之前准备原理

添加链接描述在这里插入图片描述调用refresh方法 中 先执行 prepareReresh 方法
点进去看源码
在这里插入图片描述
接着往下执行
在这里插入图片描述
初始话属性设置 点进去看源码 发现是空实现方法 专门给子类继承实现,自定义定制属性
在这里插入图片描述
检验属性是否合法

创建监听容器和事件容器_
在这里插入图片描述
1.preparerefresh 的主要工作就是创建设置一些属性,建炎属性 合法性 并且
创建容器
接下来,获取bean工厂

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

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述
第四步 点进去发现是个空方法 ,可以自定义子类实现 ,
可以自己控制在 beanfactory前后 进行 对 beanfactory的 操作
在这里插入图片描述
在这里插入图片描述
##前四部主要是对beanfactory的准备工作
=========================================================
第五步 执行beanfacotrypostprocessor

在这里插入图片描述

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

第七步:进步国际化资源解析
在这里插入图片描述
第八部:初始化事件派发器
在这里插入图片描述
第九部:子类重写这个方法,在容器中刷新时可以 自定义
在这里插入图片描述
第十步:注册监听

在这里插入图片描述
完成初始化剩下的所有单实例bean
在这里插入图片描述
在这里插入图片描述
代码逻辑如下:创建剩余的bean
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值