当前位置: 首页 > article >正文

71.Spring和SpringMVC为什么需要父子容器?

71.Spring和SpringMVC为什么需要父子容器?

就功能性来说不用子父容器也可以完成(参考:SpringBoot就没用子父容器)

  • 1、所以父子容器的主要作用应该是划分框架边界。有点单一职责的味道。service、dao层我们一般使用spring框架
    来管理、controller层交给springmvc管理
  • 2、规范整体架构 使 父容器service无法访问子容器controller、子容器controller可以访问父容器 service
  • 3、方便子容器的切换。如果现在我们想把web层从spring mvc替换成struts,那么只需要将spring­mvc.xml替换成
    Struts的配置文件struts.xml即可,而spring­-core.xml不需要改变
  • 4、为了节省重复bean创建

知识延伸

spring容器和springmvc容器,以及web容器的关系

  • springmvc和spring它俩都是容器,容器就是管理对象的地方,例如Tomcat,就是管理servlet对象的,而springMVC容器和spring容器,就是管理bean对象的地方,再说的直白点,springmvc就是管理controller对象的容器,spring就是管理service和dao的容器,这下你明白了吧。所以我们在springmvc的配置文件里配置的扫描路径就是controller的路径,而spring的配置文件里自然配的就是service和dao的路径

  • 在Spring整体框架的核心概念中,容器是核心思想,就是用来管理Bean的整个生命周期的,而在一个项目中,容器不一定只有一个,Spring中可以包括多个容器,而且容器间有上下层关系,目前最常见的一种场景就是在一个项目中引入Spring和SpringMVC这两个框架,其实就是两个容器:Spring是根容器,SpringMVC是其子容器。在上文中,我们提到,SpringMVC容器可以访问Spring容器中的Bean,Spring容器不能访问SpringMVC容器的Bean。但是,若开发者对Spring容器和SpringMVC容器之间的关系了解不够深入,常常会因配置失当而导致同时配置Spring和SpringMVC时出现一些奇怪的异常,比如Controller的方法无法拦截、Bean被多次加载等问题。

在实际工程中,一个项目中会包括很多配置,根据不同的业务模块来划分,我们一般思路是各负其责,明确边界,即:Spring根容器负责所有其他非controller的Bean的注册,而SpringMVC只负责controller相关的Bean的注册


http://www.kler.cn/a/229480.html

相关文章:

  • 鸿蒙(HarmonyOS)项目方舟框架(ArkUI)之Radio组件
  • macOS Sonoma 14系统安装包
  • 算法.1-三大排序算法-对数器-二分
  • 什么是TCP三次握手、四次挥手?
  • 绕过过滤空格的 SQL 注入
  • 微服务介绍
  • Javascript | JS如何断点测试(WebStorm)
  • pytest的常用插件和Allure测试报告
  • 【蓝桥杯选拔赛真题91】Scratch筛选数据 第十五届蓝桥杯scratch图形化编程 少儿编程创意编程选拔赛真题解析
  • 宠物空气净化器哪个品牌质量好?实惠的猫用猫用净化器牌子测评
  • 计算机设计大赛 深度学习+opencv+python实现车道线检测 - 自动驾驶
  • 在每个地方都应该添加 memo 吗?
  • 【ArcGIS微课1000例】0101:删除冗余节点或折点
  • 计算机网络——03网络核心
  • 详解Python3的垃圾回收机制
  • 国内领先的酒店用品采购平台「尚和酒店」×企企通B2B2B商城上线,引领酒店用品行业数智升级
  • 在 CentOS 7上使用 Apache 和 mod_wsgi 部署 Django 应用的方法
  • Nginx使用详解
  • 6、基于机器学习的预测
  • 4. 树(二叉树、二叉查找树/二叉排序树/二叉搜索树、平衡二叉树、平衡二叉B树/红黑树)