Spring与SpringMvc之父子容器

springweb项目配置文件

在这里插入图片描述
由图可见,springweb项目中创建了2个WebApplicationContext,分别是spring创建的容器applicationContext.xml和springmvc创建的dispatcher-servlet.xml。
作用
springmvc   dispatcher-servlet.xml:在MVC三层模型中的controller控制层中,与视图解析器ViewReslover,HandlerMapping处理器映射器等打交道,用于前后端交互
spring   applicationContext.xml:在MVC三层模型中的service业务层和Dao持久层中,管理bean的注入以及bean所相关依赖对象的注入

父子容器介绍

springmvc初始化容器的时候会在这个容器指定一个父容器,也就是spring创建的容器。
在这里插入图片描述
父子容器特点:

1.父容器和子容器是相互隔离的,他们内部可以存在名称相同的bean
2.子容器可以访问父容器中的bean,而父容器不能访问子容器中的bean
3.调用子容器的getBean方法获取bean的时候,会沿着当前容器开始向上面的容器进行查找,直到找到对应的bean为止
4.子容器中可以通过任何注入方式注入父容器中的bean,而父容器中是无法注入子容器中的bean,原因是第2点

父子容器相关问题

spring和springmvc中为什么要有父子容器?

基于spring父容器不能访问springmvc容器里面的bean特点,可以达到隔离解耦,区分框架边界的目的。避免service层注入controller层的bean导致结构混乱

springmvc可以只有一个容器?

可以只使用一个容器:SpringMVC容器。这个容器里配置所有的bean

父子容器可以解决哪种业务场景?

场景:公司A与公司B合作,公司A项目依赖公司B项目的jar包,此时A项目和依赖的B项目jar包同时拥有很多相同名称的bean,此时就会报错bean名称重复,那么此刻父子容器就可以解决这个问题。
解决方式:A作为子容器,B作为父容器,就不用去手动更改N个相同名称的bean

参考博文:https://blog.csdn.net/likun557/article/details/105608851

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值