spring4.2源码分析(一)组件-BeanFactory系列(2-ListableBeanFactory)

(2)ListableBeanFactory extends BeanFactory

  • 功能说明

       总结:提供获取满足条件的bean对象列表和bean相关属性列表;

       ----扩展BeanFactory接口功能

     (1)实现可枚举所有bean实例,而不是根据客户端请求通过beanname一个一个查找实例;

     (2)BeanFactory实现预加载所有bean定义(如基于xml的工厂)可实现该接口;

     (3)如果这是一个层次结构的bean工厂,返回值将不会把任何层次接口考虑进入,而是仅仅是当前工厂的bean定义

              可通过BeanFactoryUtils帮助考虑祖先工厂中的beans。

  • 功能列表

int getBeanDefinitionCount();

# 返回当前工厂中定义的bean的数量,不考虑此工厂可能参与的层次结构

String[] getBeanDefinitionNames();

# 返回当前工厂中定义的所有bean的名字

String[] getBeanNamesForType(ResolvableType type);

String[] getBeanNamesForType(Class<?> type);

String[] getBeanNamesForType(Class<?> type, boolean includeNonSingletons, boolean allowEagerInit);

# allowEagerInit = true : 工厂实例将被初始化 ;= false : 未加工的对象将被检查

<T> Map<String, T> getBeansOfType(Class<T> type) throws BeansException;

注解相关:

String[] getBeanNamesForAnnotation(Class<? extends Annotation> annotationType);

Map<String, Object> getBeansWithAnnotation(Class<? extends Annotation> annotationType) throws BeansException;

<A extends Annotation> A findAnnotationOnBean(String beanName, Class<A> annotationType)

      throws NoSuchBeanDefinitionException;
下一章: 《spring4.2源码分析(一)组件-BeanFactory系列(3-HierarchicalBeanFactory)》


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值