Spring源码笔记之SpringIOC--(4)BeanFactory的扩展之HierarchicalBeanFactory
【摘要】 BeanFactory的扩展之HierarchicalBeanFactory先引用BeanFactory的类继承关系图来看一下HierarchicalBeanFactory的位置«interface»BeanDefinitionRegistry注册BeanDefinition接口«interface»BeanFactoryioc容器核心接口«interface»ListableBeanFa...
BeanFactory的扩展之HierarchicalBeanFactory
先引用BeanFactory的类继承关系图来看一下HierarchicalBeanFactory
的位置
HierarchicalBeanFactory
是BeanFactory
分层功能的扩展,它提供了BeanFactory
分层嵌套的能力。即一个BeanFactory
可以引用另外一个BeanFactory
作为其父容器。HierarchicalBeanFactory
源码目前只提供了两个接口,其源码如下:
public interface HierarchicalBeanFactory extends BeanFactory {
// 返回其父容器BeanFactory
@Nullable
BeanFactory getParentBeanFactory();
// 当前容器下是否包含bean,不会去搜寻父容器
boolean containsLocalBean(String name);
}
在实际使用过程会通过引用父容器parent实现BeanFactory的嵌套调用,如下
public MyBeanFactory implement HierarchicalBeanFactory{
private BeanFactory parent;
private BeanFactory beanFactory;
// 返回父容器parent
@Override
@Nullable
public BeanFactory getParentBeanFactory() {
return this.parent;
}
// 根据当前容器判断是否存在Bean
@Override
public boolean containsBeanDefinition(String beanName) {
return this.beanFactory.containsBeanDefinition(beanName);
}
}
这种关系有点类似与单链表
【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱:
cloudbbs@huaweicloud.com
- 点赞
- 收藏
- 关注作者
评论(0)