单一类型依赖查找
核心是BeanFactory
- 根据Bean名称查找
- getBean
- 根据Bean类型查找
- 实时查找
- 延迟查找(getBeanProvider)
- 根据Bean名称 + 类型查找:getBean(String,Class)
集合类型依赖查找
核心是ListableBeanFactory
- 根据Bean类型查找
- 获取同类型Bean名称列表
- 获取同类型Bean实例列表
- getBeansOfType
- 根据注解类型查找
* 获取名称
* 获取实例
* 获取指定名称 + 注解类型的Bean实例
建议使用Bean的名称判断Bean是否存在
层次性依赖查找(上下文之间关系)
- 根据Bean名称查找 官方未实现,可以基于containsLocalBean实现,不断向上递归查找
- 根据Bean类型查找 BeanFactoryUtils
- 根据Bean注解查找 BeanFactoryUtils
延迟依赖查找
- ObjectFactory
- ObjectProvider 也是ObjectFactory的一个增强,建议用这个!
安全依赖查找
也就是查不到会不会抛出异常
-
单一类型依赖查找
- BeanFactory#getBean 否
- ObjectFa