采纳答案成功!
向帮助你的同学说点啥吧!感谢那些助人为乐的人
最近在读注册的源码时这里有一点疑惑,我所理解的是dependentBeanMap保存了一个bean所依赖的所有bean,containedBeanMap保存了它所包含的所有bean。我感觉这两个的map是重复的?因为感觉依赖的所有bean相当于包含的所有bean,或者说能不能详细讲一下依赖和包含这两个词在bean关系里的区别?感觉有点区分不开
同学好,两个的作用是不同的,大致看了下代码,比如A类里有Bean B, Bean B里有Bean C
containedBeanMap
里只保存了A->B的关系
而dependentBeanMap则保存了
A->B->C的关系
两者的作用主要是前者用来确保A下面的Bean都销毁,而后者则是确保依赖的关系
这两个map的value对应的都是一个set,为什么containedBeanMap只存了A->B的呢?通过今天的了解,我感觉是不是contrainesBeanMap存的是ref属性对应的集合,dependentBeanMap存的是depends-on属性对应的集合
contained也存ref,但是depend这块除了显示dependson 还有隐式依赖,即属性里面有bean的情况,主要关注于依赖,cobtained则只是存储该bean里面包含的bean,不包含属性bean里面包含的bean。
登录后可查看更多问答,登录/注册
快速入门Spring核心源码+从零开发自研框架
1.2k 12
1.1k 9
1.2k 8
1.3k 8
15.7k 8