在spring的bean缓存中既然有了dependentBeanMap为什么还会有containedBeanMap?
来源:6-9 BeanDefinition的注册
![](http://img1.sycdn.imooc.com/user/586ccd8b0001e2a406400639-100-100.jpg)
Tristeza
2020-08-31
最近在读注册的源码时这里有一点疑惑,我所理解的是dependentBeanMap保存了一个bean所依赖的所有bean,containedBeanMap保存了它所包含的所有bean。我感觉这两个的map是重复的?因为感觉依赖的所有bean相当于包含的所有bean,或者说能不能详细讲一下依赖和包含这两个词在bean关系里的区别?感觉有点区分不开
写回答
1回答
-
同学好,两个的作用是不同的,大致看了下代码,比如A类里有Bean B, Bean B里有Bean C
containedBeanMap
里只保存了A->B的关系
而dependentBeanMap则保存了
A->B->C的关系
两者的作用主要是前者用来确保A下面的Bean都销毁,而后者则是确保依赖的关系
022020-09-01
相似问题