Spring父子容器

Posted 盖丽男

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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冲突解决与上下文隔离

以上是关于Spring父子容器的主要内容,如果未能解决你的问题,请参考以下文章

spring父子容器

Spring中父子容器的实现实例

Spring父子容器

[转]Spring IOC父子容器简介

03 Spring的父子容器

Spring MVC学习—Spring MVC中容器的层次结构以及父子容器的概念