循环依赖

一:.要理解循环依赖需要先理解bean的生命周期,在两个bean的生命周期内,ABA循环依赖导致报错。

二:.解决办法,

1通过配置让springboot允许循环依赖。这个底层是通过spring的三级缓存实现的。一级缓存存放完整的bean.二级缓存防止bean的动态代理重复。三级缓存,通过提供一个动态代理而非实际实现来赋值bean的属性,完成bean的实例化。

2.通过@lazy实现,因为懒加载在实例化时不用提供bean的实际实现,而是提供一个动态代理就可以了。第一次访问的时候才实现。这样就不存在启动时的循环依赖了。

posted @ 2024-06-23 21:25  人在代码在  阅读(26)  评论(0)    收藏  举报