【Spring】依赖查找

本文详细介绍了Spring中各种类型的依赖查找,包括单一类型、集合类型、层次性、延迟和安全依赖查找。讲解了核心接口如BeanFactory、ListableBeanFactory及ObjectProvider的使用,并讨论了依赖查找的经典异常及其解决方案。同时,提到了ObjectFactory和BeanFactory的区别以及BeanFactory.getBean的线程安全性。
摘要由CSDN通过智能技术生成

单一类型依赖查找

核心是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
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值