Spring父子容器

什么是父子容器

什么是容器

当我们使用spring的时候,我们经常会提到一个概念,IOC容器,IOC容器就是具有依赖注入功能的容器,IOC容器负责实例化、定位、配置应用程序中的对象及建立这些对象间的依赖。应用程序无需直接在代码中new相关的对象,应用程序由IOC容器进行组装。在Spring中BeanFactory是IOC容器的实际代表者。
我们还常常看到一个问题,就是“Spring中BeanFactory和ApplicationContext的区别”,从咱们今天要讨论的问题来看,其实他俩都属于IOC容器,可以先简单的理解为ApplicationContext是BeanFactory的扩展版,支持很多它不支持的功能。
所以容器,我们可以先理解为就是程序中管理对象的工厂(Factory)。

如何形成父子关系

而父子容器,其实可以理解为管理不同对象的工厂,但是它们之间,有一个组合的关系,子容器持有父容器的对象引用,因此子容器可以拿到父容器中的对象,相反,父容器不能拿到子容器中的对象,注意,他们之间没有继承/实现的关系。

父子容器的特点

父容器和子容器是相互隔离的,他们内部可以存在名称相同的bean

子容器可以访问父容器中的bean,而父容器不能访问子容器中的bean

调用子容器的getBean方法获取bean的时候,会沿着当前容器开始向上面的容器进行查找,直到找到对应的bean为止

子容器中可以通过任何注入方式注入父容器中的bean,而父容器中是无法注入子容器中的bean,原因是第2点

父子容器的作用

父子容器的主要用途是上下文隔离。可以看到特点中的第一条,父子容器中的bean是可以同名的。

引用

spring成神之路第二十四篇:父子容器详解

Spring父子容器的应用: Bean冲突解决与上下文隔离

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

盖丽男

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值