请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

正在回答 回答被采纳积分+3

1回答

翔仔 2020-10-01 23:42:39

同学好,aop只是作为插件,配置到processor里并贯穿在getBean的过程中,所以代理的方式和普通Bean的循环依赖处理没有区别,beanprocessor这些后面会说的

0 回复 有任何疑惑可以回复我~
  • 如果没有区别,生成bean的过程二级缓存就可以了,Spring为什么使用了三级呢?
    回复 有任何疑惑可以回复我~ 2020-10-06 02:08:12
  • 翔仔 回复 提问者 野生的程序猿一只 #2
    对啊,我意思是getBean普通类和代理类都是一样的处理方式,但是三级缓存的存在除了便于扩展之外,确实是为了解决代理对象的循环依赖才使用三级缓存,如果没有代理的话,用两级缓存也是可以的,具体同学可以复看看源码,不可能每次执行singleFactory.getObject()方法都给产生一个新的代理对象,所以还要借助另外一个缓存来保存产生的代理对象,因此循环代理类的处理主要集中在三级缓存中,这里附上相关逻辑的解析,
    https://blog.csdn.net/chaitoudaren/article/details/105060882
    回复 有任何疑惑可以回复我~ 2020-10-06 23:55:54
  • 提问者 野生的程序猿一只 回复 翔仔 #3
    好的,谢谢老师
    回复 有任何疑惑可以回复我~ 2020-10-10 17:36:46
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信