美文网首页
spring的循环依赖

spring的循环依赖

作者: 垂直居中的句号 | 来源:发表于2021-04-27 21:06 被阅读0次

当Aservice类里有Bservice,当Bservice类里有Aservice时,

创建a时,需要赋值b,创建b时需要赋值a。此时都没有创建完成,无法赋值。

解决方法:spring的三级缓存。

当A创建实例时形成一个原始对象,当有循环依赖时提前经过aop形成代理对象,放入map(二级缓存),判断a正在创建中,可以在创建之前加入一个createmap,创建之后移除。

创建b时先从单例池(一级缓存)取,没有从代理对象的map取,没有的话说明a正在创建中,从原始对象中取到形成代理对象。

当b,c,同时形成a的代理对象时,与A的单例冲突。于是当。。。.三级缓存还没听懂。。。。

相关文章

网友评论

      本文标题:spring的循环依赖

      本文链接:https://www.haomeiwen.com/subject/aoiprltx.html