springboot 配置允许循环依赖 |
您所在的位置:网站首页 › pom循环依赖解决 › springboot 配置允许循环依赖 |
循环依赖报错:当启动项目时,可能出现程序不能启动的情况,查看调试日志,会提示 The dependencies of some of the beans in the application context form a cycle... 原因:SpringBoot 从 2.6 开始默认不允许出现 Bean 循环引用。而且这个是在Bean 定义上也就是类上就不允许出现循环引用。 解决方式 1、允许循环引用存在方式1.在全局配置文件设置允许循环引用存在: spring: main: allow-circular-references:true方式2.在SpringApplicationBuilder 添加设置允许循环引用: public static void main(String[] args) { new SpringApplicationBuilder(DemoApplication.class).allowCircularReferences(true).run(args); } 2、消除循环依赖Spring官方的初心是不希望开发者编写循环引用的代码,也就是说未来的某个版本可能强制不能使用循环引用,因此在项目中消除循环依赖是不得不面对的问题。 ------------------------------------------------------------------------------------------------------------------------------ 面试官:”Spring是如何解决的循环依赖?“ Spring框架(四) 三级缓存与循环依赖_singletonfactories_lingering fear的博客-CSDN博客 一级:singletonObjects 这个缓存也就是单例池 , 它存放的是完整的经过Bean生命周期的Bean 二级:earlySingletonObject 这个缓存存放的一个残疾Bean , 怎么理解呢?就是创建到一半就放进去了 三级:singletonFactories 这个缓存存放的是ObjectFactory , 表示用来 创建早期Bean 对象的工厂 个人理解: 1、上图一个缓存就可以解决循环依赖, 为什么要三级缓存? 我们都知道 , AOP是Spring除开IOC的另外一大功能 , 而循环依赖又属于IOC的范围 , 所以如果想要这两者功能共存 , 就必须使用其他的手段:三级缓存 singletonFactories
|
今日新闻 |
推荐新闻 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |