07 整合SSM的快速理解

1.1 第一问:SSM整合需要几个IoC容器?

两个容器

本质上说,整合就是将三层架构和框架核心API组件交给SpringIoC容器管理!

一个容器可能就够了,但是我们常见的操作是创建两个IoC容器(web容器和root容器),组件分类管理!

这种做法有以下好处和目的:

  1. 分离关注点:通过初始化两个容器,可以将各个层次的关注点进行分离。这种分离使得各个层次的组件能够更好地聚焦于各自的责任和功能。
  2. 解耦合:各个层次组件分离装配不同的IoC容器,这样可以进行解耦。这种解耦合使得各个模块可以独立操作和测试,提高了代码的可维护性和可测试性。
  3. 灵活配置:通过使用两个容器,可以为每个容器提供各自的配置,以满足不同层次和组件的特定需求。每个配置文件也更加清晰和灵活。

在SpringBoot中 , 进一步简化为1个容器.

1.2 第二问:两个IoC容器分别对应哪些类型组件?

在这里插入图片描述
root是父 , web是子

1.3 第三问:两个IoC容器的注入(调用方向)关系?

  • 两个无关容器不可互相注入
  • 子容器(web)可向父容器(root)单向注入 . 在实际开发中就是如此 , 我们都是从Controller开始向下注入Service的.

1.4第四问:具体添加多少个配置类以及对应容器关系?

初期为了方便理解 , 三层架构每层对应一个配置类,分别指定两个容器加载即可!
在这里插入图片描述

1.5 第五问:IoC初始化方式和配置位置?

对于使用基于 web 的 Spring 配置的应用程序 , 一般采用配置类的方式 , 即用一个配置类初始化两个容器 :

public class MyWebAppInitializer extends AbstractAnnotationConfigDispatcherServletInitializer {//指定root容器对应的配置类//root容器的配置类@Overrideprotected Class<?>[] getRootConfigClasses() {return new Class<?>[] { ServiceJavaConfig.class,MapperJavaConfig.class };}//指定web容器对应的配置类 webioc容器的配置类@Overrideprotected Class<?>[] getServletConfigClasses() {return new Class<?>[] { WebJavaConfig.class };}//指定dispatcherServlet处理路径,通常为 / @Overrideprotected String[] getServletMappings() {return new String[] { "/" };}
}

图3

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/627671.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2024年美赛数学建模思路 - 复盘:校园消费行为分析

文章目录 0 赛题思路1 赛题背景2 分析目标3 数据说明4 数据预处理5 数据分析5.1 食堂就餐行为分析5.2 学生消费行为分析 建模资料 0 赛题思路 &#xff08;赛题出来以后第一时间在CSDN分享&#xff09; https://blog.csdn.net/dc_sinor?typeblog 1 赛题背景 校园一卡通是集…

uni-app的组件(一)

scroll-view 可滚动视图区域。用于区域滚动 <scroll-view scroll-y"true" :scroll-top"scrollTop" class"scroll-y" scroll"scroll"><view id"demo1" class"scroll-view-item bg-red">A</view>…

【Linux笔记】进程等待与程序替换

一、进程的终止 1、进程退出码 在讲解进程的终止之前&#xff0c;先要普及一下进程的退出码概念。 我们父进程之所以要创建子进程&#xff0c;就是为了让子进程运行不一样的任务&#xff0c;那么对于子进程执行的这个任务执行完毕后的结果是否正确或者是否出差错&#xff0c…

将 pyparamvalidate 项目,发布至 pypi

目录 一、前置说明1、总体目录2、相关回顾3、本节目标 二、操作步骤1、项目目录2、编写 pyproject.toml 文件3、编写 LICENSE 文件4、编写 README.md 文件5、升级 pip、build、twine 工具6、打包发布的版本7、测试发布至 TestPyPI8、创建测试项目&#xff0c;测试发布结果9、正…

SSM框架学习笔记04 | SpringMVC

文章目录 一、SpringMVC简介二、 请求与响应1. 请求映射路径2. get请求与post请求3. 响应 二、REST风格1.简介 三、 SSM整合四、拦截器1. 定义拦截器2.配置拦截器3.拦截器执行顺序4.拦截器参数5.多个连接器工作流程分析6.拦截器链的运行顺序 一、SpringMVC简介 SpringMVC技术与…

AI嵌入式K210项目(3)-GPIO控制

文章目录 前言一、背景知识二、背景知识二、开始你的表演代码实现 总结 前言 前面介绍了开发板和环境搭建的基本情况&#xff0c;接下来我们开始学习使用C进行裸板开发&#xff0c;本节课先来学习下K210最基础的功能&#xff0c;引脚映射和点灯。 在开始具体学习之前&#xff…

java数据结构与算法刷题-----LeetCode96. 不同的二叉搜索树

java数据结构与算法刷题目录&#xff08;剑指Offer、LeetCode、ACM&#xff09;-----主目录-----持续更新(进不去说明我没写完)&#xff1a;https://blog.csdn.net/grd_java/article/details/123063846 很多人觉得动态规划很难&#xff0c;但它就是固定套路而已。其实动态规划只…

TRB 2024论文分享:融合Transformer和自监督学习的长时交通流预测模型

TRB&#xff08;Transportation Research Board&#xff0c;美国交通研究委员会&#xff0c;简称TRB&#xff09;会议是交通研究领域知名度最高学术会议之一&#xff0c;近年来的参会人数已经超过了2万名&#xff0c;是参与人数和国家最多的学术盛会。TRB会议几乎涵盖了交通领域…

Ceph的介绍与部署

目录 存储基础 单机存储设备 DAS&#xff08;直接附加存储&#xff0c;是直接接到计算机的主板总线上去的存储&#xff09; NAS&#xff08;网络附加存储&#xff0c;是通过网络附加到当前主机文件系统之上的存储&#xff09; SAN&#xff08;存储区域网络&#xff09; 单…

基于ssm的数学课程评价系统的设计与开发+jsp论文

摘 要 现代经济快节奏发展以及不断完善升级的信息化技术&#xff0c;让传统数据信息的管理升级为软件存储&#xff0c;归纳&#xff0c;集中处理数据信息的管理方式。本数学课程评价系统就是在这样的大环境下诞生&#xff0c;其可以帮助管理者在短时间内处理完毕庞大的数据信息…

List转数组,使用toArray时,new String[0] 的数组空间大小怎么传?

我们在日常开发中&#xff0c;经常遇到List转数组&#xff0c;数组转List的场景。当我们List转数组时&#xff0c;一般使用这种方式&#xff1a; String[] queryTaskIdArr queryTaskIds.toArray(new String[0]); 但是toArray方法中的入参有什么需要注意的呢&#xff1f; 如下…

【架构】docker实现集群主从扩容【案例3/4】

实现集群主从扩容 当整个集群扛不住流量的情况时&#xff0c;需要给集群扩容增加设备&#xff0c;由3主3从&#xff0c;扩为4主4从。实现&#xff1a; 示意图如下&#xff1a; 第一步&#xff1a;新创建两个节点&#xff08;redis-node-7&#xff0c;端口6387和 redis-node…

sqli-labs关卡25(基于get提交的过滤and和or的联合注入)

文章目录 前言一、回顾上一关知识点二、靶场第二十五关通关思路1、判断注入点2、爆显位个数3、爆显位位置4、爆数据库名5、爆数据库表名6、爆数据库列名7、爆数据库数据 总结 前言 此文章只用于学习和反思巩固sql注入知识&#xff0c;禁止用于做非法攻击。注意靶场是可以练习的…

数据结构之list类

前言 list是列表类。从list 类开始&#xff0c;我们就要接触独属于 Python 的数据类型了。Python 简单、易用&#xff0c;很大一部分原因就是它对基础数据类型的设计各具特色又相辅相成。 话不多说&#xff0c;让我们开始学习第一个 Python 数据类型一list。 1. list的赋值 输…

【shell】读取表格文件的数据

碎碎念 shell在处理复杂问题的时候不具备优势&#xff0c;如果业务环境能够使用python的话用python又简单又好用&#xff0c;但是很多云平台的现场可能需要shell脚本文件&#xff08;还好是要求bash&#xff09; 但是现在有一个业务场景就是运维人员会把参数写在excel表格中 …

《教育》期刊是什么级别的期刊?是正规期刊吗?能评职称吗?

《教育》以教育行业的各类新闻为重点&#xff0c;积极推广各地教育部门改革经验及优秀成果&#xff0c;努力挖掘教育一线先进单位和个人&#xff0c;充分发挥新闻舆论的监督作用。 收录情况&#xff1a;知网收录 投稿方式&#xff1a;教育类&#xff5c;《教育》省级 出版周期&…

Java 常用加密解密

Java 常用加密解密 常见的加密算法可以分成三类&#xff0c;对称加密算法&#xff0c;非对称加密算法和Hash算法。 对称加密 指加密和解密使用相同密钥的加密算法。对称加密算法的优点在于加解密的高速度和使用长密钥时的难破解性。假设两个用户需要使用对称加密方法加密然后…

B端产品经理学习-B端产品的项目管理

项目管理的作用 指导Roadmap落地 每个节点的项目时间需要按照时间点落地&#xff0c;才不会影响后面的项目事件 为了明确需求&#xff0c;明确研发的工作 避免产研部门因为需求扯皮、研发部门抱怨需求文档不够清晰、在开发过程中增加很多细节需求、增加了研发的工作量、初次…

OPC UA 开源库编译方法及通过OPC UA连接西门S7-1200 PLC通信并进行数据交换[一]

前言 在现代工业自动化领域&#xff0c;OPC UA&#xff08;开放性生产控制和统一架构&#xff09;是一种广泛应用的通信协议。本文将以通俗易懂的方式解释OPC UA的含义和作用&#xff0c;帮助读者更好地理解这一概念。 一、OPC UA的定义 OPC UA全称为“开放性生产控制和统一…

R语言【paleobioDB】——pbdb_orig_ext():绘制随着时间变化而出现的新类群

Package paleobioDB version 0.7.0 paleobioDB 包在2020年已经停止更新&#xff0c;该包依赖PBDB v1 API。 可以选择在Index of /src/contrib/Archive/paleobioDB (r-project.org)下载安装包后&#xff0c;执行本地安装。 Usage pbdb_orig_ext (data, rank, temporal_extent…