【源码系列】Java Spring源码直播课(Bean生命周期|循环依赖) 2022.05.19 周四

01. 05.19 周四

1.1)Spring源码

在这里插入图片描述

1.1.1)Bean的生命周期

![在这里插入图片描述](https://img-blog.csdnimg.cn/6ae1570110ce49c0b2512f42c326cdaf.png)

在这里插入图片描述

  • Spring源码中有 7000多个 类
  • Spring中默认内置了 Tomcat,是在 OnRefresh() 方法实现的

在这里插入图片描述

在这里插入图片描述

  • 容器对象:
    ApplicationContext BeanFactory 等

在这里插入图片描述

在这里插入图片描述

  • AOP是IOC中的一个流程
    在这里插入图片描述

  • afterPropertiesSet() 方法是 给用户最后一次来进行初始化或者某些方法的调用操作
    在这里插入图片描述

  • 源码方法论
    在这里插入图片描述

02. 05.20 周五

2.1) 循环依赖

  • 最后一个地方形成闭环地方,破之
    在这里插入图片描述

  • A是半成品对象,已经实例化完成了,但是没有初始化完成
    在这里插入图片描述

  • 解决:
    三级缓存,提前暴露对象

三级缓存指的是 三个map结构
在这里插入图片描述

  • 三级缓存
    在这里插入图片描述

ObjectFunction是一个 函数式接口,可以将当前类型作为一个方法的参数,传递的时候,可以将lambda 表达式传递进去,在执行的时候需要通过 getObject 方法来调用具体的 lambda表达式的执行

在这里插入图片描述

在这里插入图片描述

  • lambda表达式,先不允许,等调用 getObject方法时,实际运行
    在这里插入图片描述

  • 初步放到 三级缓存里
    在这里插入图片描述

在这里插入图片描述

三级缓存,一级缓存 singletonObjects中存的是成品。
二级缓存 earlySingletonObjects中存的是 半成品
三级缓存 singletonFactiries 存的是 lambda表达式
在这里插入图片描述

2.1.1)结论

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

2.2) 其他

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值