单一类型依赖查找接口 - BeanFactory
• 根据 Bean 名称查找
• getBean(String)
• Spring 2.5 覆盖默认参数:getBean(String,Object…)
• 根据 Bean 类型查找
• Bean 实时查找
• Spring 3.0 getBean(Class)
• Spring 4.1 覆盖默认参数:getBean(Class,Object…)
• Spring 5.1 Bean 延迟查找
• getBeanProvider(Class)
• getBeanProvider(ResolvableType)
• 根据 Bean 名称 + 类型查找:getBean(String,Class)
集合类型依赖查找接口 - ListableBeanFactory
• 根据 Bean 类型查找
• 获取同类型 Bean 名称列表
• getBeanNamesForType(Class)
• Spring 4.2 getBeanNamesForType(ResolvableType)
• 获取同类型 Bean 实例列表
• getBeansOfType(Class) 以及重载方法
• 通过注解类型查找
• Spring 3.0 获取标注类型 Bean 名称列表
• getBeanNamesForAnnotation(Class<? extends Annotation>)
• Spring 3.0 获取标注类型 Bean 实例列表
• getBeansWithAnnotation(Class<? extends Annotation>)
• Spring 3.0 获取指定名称 + 标注类型 Bean 实例
• findAnnotationOnBean(String,Class<? extends Annotation>)
层次性依赖查找接口 - HierarchicalBeanFactory
• 双亲 BeanFactory:getParentBeanFactory()
• 层次性查找
• 根据 Bean 名称查找
• 基于 containsLocalBean 方法实现
• 根据 Bean 类型查找实例列表
• 单一类型:BeanFactoryUtils#beanOfType
• 集合类型:BeanFactoryUtils#beansOfTypeIncludingAncestors
• 根据 Java 注解查找名称列表
• BeanFactoryUtils#beanNamesForTypeIncludingAncestors