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

news/2024/6/3 17:41:28 标签: spring, java, 后端, ssm, 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.niftyadmin.cn/n/5367016.html

相关文章

Oracle数据表ID自增操作

一、Oracle ID自增长功能介绍 Oracle数据库默认不支持像 SQLServer、MySQL中的自增长(auto increment)功能,即自动为每一行记录的自增长字段生成下一个值。 二、Oracle ID自增长方法 第一种,通过序列(sequence&#…

使用clearml监控模型训练过程

安装依赖 pip install clearml依赖安装好后登陆clearml官网 创建一个工作空间 点击Create new credentials 点击后将api整块复制出来,随后需要在当前终端环境中初始化这个clearml的账户信息 终端输入: clearml-init 在出现的Paste copied configurat…

Excel文件按照列内容进行分组

import pandas as pd# 读取原始Excel文件 df pd.read_excel(rC:\Users\1\Desktop\DamaishujuStoreProductInfo.xlsx)# 根据SiteAbbr列内容进行分组 groups df.groupby(SiteAbbr)# 遍历每个分组,生成新的Excel表格 for name, group in groups:# 创建新的Excel文件名…

SW-LIMS条码管理助力钢铁行业可视化、电子化流程管理

近年来,面对日益激烈的市场竞争,如何实现生产原料和成品的高品质、低成本、高效率逐渐成为大部分公司的目标。条码管理技术的开发和应用可以使企业从传统的生产管理方式中彻底走出来,向数智化转型的方向迈进。 北京三维天地科技股份有限公司在实验室数智化领域具有丰富的行业经…

算法学习——LeetCode力扣哈希表篇2

算法学习——LeetCode力扣哈希表篇2 454. 四数相加 II 454. 四数相加 II - 力扣(LeetCode) 描述 给你四个整数数组 nums1、nums2、nums3 和 nums4 ,数组长度都是 n ,请你计算有多少个元组 (i, j, k, l) 能满足: 0 …

C语言:内存函数

创作不易,友友们给个三连吧!! C语言标准库中有这样一些内存函数,让我们一起学习吧!! 一、memcpy函数的使用和模拟实现 void * memcpy ( void * destination, const void * source, size_t num ); 1.1 使…

什么是大模型

目录 让你了解什么是大模型什么是大模型?大模型的应用场景常见的大模型技术实例分析:深度学习语言模型GPT-3 让你了解什么是大模型 大模型(Big Model)是指在机器学习和人工智能领域中处理大规模数据和复杂模型的一种方法或技术。…

RCS系统之:界面设计

RCS Floor Manager设计的主要目的: 实时监控机器人状态实时查看货架状态查看机器人任务状态查看捡货站的任务状态地图的状态信息其他元素,如打包机,机械臂的状态动态的编辑地图元素信息等等 有兴趣的可以留言一起交流下