spring源码

spring 准备阶段做了什么?
        1设置容器启动时间
     * 2设置标志位
     * 3获取环境对象  验证属性资源
     * 4存储预刷新监听器和 事件的集合对象     

 

 

 

 

 

 

进入obtainFreshBeanFactory

 

 

 

 

 

 

 

 设置beanFactory 是否允许覆盖  与否允许bean之间存在循环依赖

 

创建beanFactory 往里面设置xml中的属性值

 

 

 

 

 初始化beanFactory 往里面设置属性值

 

 

 

 aware可以获取容器中的某些对象   因为这里还没有初始化完成  所以忽略 后面同一处理

 

 

 

接下来该走 增强器

 

 

 

 //开始执行BFPP对象  里面是排序等操作

 

 

 

 ----------------------------------------------------------------

实例化之前的准备工作 先进行注册BPP  后面直接调用

 

 

 

 

 

 

可以广播事件  当监听器接收到广播事件之后  就可以执行对应的操作

 

 

 留给子类做相关扩展工作

 

注册监听器

 

 ----------------------------------------------------

 执行实例化操作

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 通过反射创建对象   反射是在运行足够多次数时才能体现性能低  1,2次没影响

 

 

 

查看构造器是否有参  有参调用有参构造器  无参则调用无参构造器

 

 

 

 

 

 

 

 

 

 

 

 

 

暴露的是实例化 但为初始化的操作

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

posted @ 2022-06-18 14:31  花心大萝卜li  阅读(62)  评论(0)    收藏  举报