在上一篇中,我们简单分析了一下Spring IOC容器中的根基BeanFactory,今天我们来看一下BeanFactory的两个扩展,ListableBeanFactory与HierarchicalBeanFactory.他们的基本情况如下图所示:
我们首先来看一下HierarchicalBeanFactory,他在BeanFactory的基础上增加了两个函数,一个是用来获取父级BeanFactory的,一个是用来判断当前BeanFactory里是否包含指定名字的Bean(忽略其他的BeanFactory).这个接口是一个二级接口,从中我们可以看到Spring在设计时的两个理念,首先是工厂的分层,其次呢是将设置和获取分离,无论是容器的获取和设置还是说容器内的Bean的设置和获取都是如此.
我们再来看ListableBeanFactory.这个接口扩展了BeanFactory,然后提供了对Bean的遍历枚举功能,他一下返回所有的Bean,不用像之前一样一个个地查找了。我们现在来看一下他的几个api.
首先是第一组函数:
1.getBeanDefinitionCount,用来返回工厂中的Bean的数目;
2.containsBeanDefinition,用来检索工厂中是否包含某个Bean
3.getBeanDefinitionNames,用来返回工厂中所有Bean的名称