对啊,我意思是getBean普通类和代理类都是一样的处理方式,但是三级缓存的存在除了便于扩展之外,确实是为了解决代理对象的循环依赖才使用三级缓存,如果没有代理的话,用两级缓存也是可以的,具体同学可以复看看源码,不可能每次执行singleFactory.getObject()方法都给产生一个新的代理对象,所以还要借助另外一个缓存来保存产生的代理对象,因此循环代理类的处理主要集中在三级缓存中,这里附上相关逻辑的解析,
https://blog.csdn.net/chaitoudaren/article/details/105060882