添加链接描述

springboot在bean创建完后执行 spring bean创建过程_自定义

调用refresh方法 中 先执行 prepareReresh 方法

点进去看源码

springboot在bean创建完后执行 spring bean创建过程_优先级_02


接着往下执行

springboot在bean创建完后执行 spring bean创建过程_自定义_03


初始话属性设置 点进去看源码 发现是空实现方法 专门给子类继承实现,自定义定制属性

springboot在bean创建完后执行 spring bean创建过程_子类_04


检验属性是否合法创建监听容器和事件容器_

springboot在bean创建完后执行 spring bean创建过程_spring bean_05


1.preparerefresh 的主要工作就是创建设置一些属性,建炎属性 合法性 并且

创建容器

接下来,获取bean工厂

springboot在bean创建完后执行 spring bean创建过程_子类_06


刷新bean工厂,就是创建 一个 beanfactory对象 并给 beanfactory设置一个序列号

并且放回刚刚genaricbeanfactory创建的 对象

springboot在bean创建完后执行 spring bean创建过程_spring bean_07


springboot在bean创建完后执行 spring bean创建过程_子类_08


第三步就是 beanfactory的欲准备工作 对其进行一些属性设置,点进去看源码

springboot在bean创建完后执行 spring bean创建过程_优先级_09


设置类加载器

解析器,等等组件

添加部分beanpostProcessor()

springboot在bean创建完后执行 spring bean创建过程_自定义_10


设置忽略的依赖自动注入接口

注册可以解析的自动装配

直接在任何组件中都可以注入下面这些类

注册环境变量 属性

springboot在bean创建完后执行 spring bean创建过程_自定义_11

springboot在bean创建完后执行 spring bean创建过程_子类_12


springboot在bean创建完后执行 spring bean创建过程_自定义_13


第四步 点进去发现是个空方法 ,可以自定义子类实现 ,

可以自己控制在 beanfactory前后 进行 对 beanfactory的 操作

springboot在bean创建完后执行 spring bean创建过程_自定义_14


springboot在bean创建完后执行 spring bean创建过程_spring bean_15


##前四部主要是对beanfactory的准备工作

=========================================================

第五步 执行beanfacotrypostprocessor

springboot在bean创建完后执行 spring bean创建过程_spring bean_16

springboot在bean创建完后执行 spring bean创建过程_自定义_17


springboot在bean创建完后执行 spring bean创建过程_子类_18


调用此方法,点金去

springboot在bean创建完后执行 spring bean创建过程_子类_19


先得到所有的postprecessor

springboot在bean创建完后执行 spring bean创建过程_优先级_20


遍历所有的processor

springboot在bean创建完后执行 spring bean创建过程_spring bean_21


首先要根据优先级去 判断是否要容器

springboot在bean创建完后执行 spring bean创建过程_子类_22


点金此方法

springboot在bean创建完后执行 spring bean创建过程_自定义_23


springboot在bean创建完后执行 spring bean创建过程_子类_24


第六步:拦截bean创建 后置处理器

springboot在bean创建完后执行 spring bean创建过程_spring bean_25


先获取所有的 beanpostprocessor

springboot在bean创建完后执行 spring bean创建过程_优先级_26


springboot在bean创建完后执行 spring bean创建过程_spring bean_27


不同的 beanpostprocessor在 bean创建前后的执行顺序是不一样的

从代码中可以看出 postprofecor都有优先级

springboot在bean创建完后执行 spring bean创建过程_自定义_28


springboot在bean创建完后执行 spring bean创建过程_自定义_29


放入各自优先级容器中

springboot在bean创建完后执行 spring bean创建过程_优先级_30


在一个个按优先级 注册到容器中

springboot在bean创建完后执行 spring bean创建过程_spring bean_31

第七步:进步国际化资源解析

springboot在bean创建完后执行 spring bean创建过程_spring bean_32


第八部:初始化事件派发器

springboot在bean创建完后执行 spring bean创建过程_自定义_33


第九部:子类重写这个方法,在容器中刷新时可以 自定义

springboot在bean创建完后执行 spring bean创建过程_子类_34


第十步:注册监听

springboot在bean创建完后执行 spring bean创建过程_子类_35


完成初始化剩下的所有单实例bean

springboot在bean创建完后执行 spring bean创建过程_优先级_36


springboot在bean创建完后执行 spring bean创建过程_优先级_37


代码逻辑如下:创建剩余的bean

springboot在bean创建完后执行 spring bean创建过程_优先级_38


springboot在bean创建完后执行 spring bean创建过程_子类_39


springboot在bean创建完后执行 spring bean创建过程_子类_40