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,一经查实,立即删除!

相关文章

Node 相关记录

Node 版本管理 nvm 卸载之前的 nodejs下载安装配置 settings.txt root: D:\nvm # nvm 安装路径 path: D:\nvm\nodejs # node 安装路径 proxy: # 淘宝镜像 node_mirror: https://npm.taobao.org/mirrors/node/ npm_mirror: https://npm.taobao.org/mirrors/n…

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…

View 自定义 - View 类中的方法

一、概念 View这个类代表用户界面组件的基本构建块。View在屏幕上占据一个矩形区域&#xff0c;并负责绘制和事件处理。View是用于创建交互式用户界面组件&#xff08;按钮、文本等&#xff09;的基础类。它的子类ViewGroup是所有布局的父类&#xff0c;它是一个可以包含其他vi…

将 pyparamvalidate 项目,发布至 pypi

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

SQLite,ROOM 清空表数据并将自增量归零

1.先清空表数据&#xff1a; delete from [tablename]; 2.当数据库中包含自增列时&#xff0c;会自动建立一个名为 sqlite_sequence 的表。这个表包含两个列&#xff1a;name和seq。name记录自增列所在的表&#xff08;即tablename&#xff09;&#xff0c;seq记录当前序号&…

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; 如下…

Hive日期函数详细讲解

Hive 提供了一系列的内建日期函数&#xff0c;用于处理日期和时间数据。以下是您提到的日期函数的详细讲解&#xff0c;包括案例和使用注意事项&#xff1a; FROM_UNIXTIME() 功能&#xff1a;将 Unix 时间戳&#xff08;秒为单位&#xff09;转换为日期时间格式。语法&#xf…

故障处理流程规范(新)

一、背景 为什么要重新制定故障处理流程&#xff1f; 2020年写过一篇文章&#xff1a; 故障处理流程和规范&#xff0c;在过去的这三年内&#xff0c;故障处理流程输出了好几个版本&#xff0c;但都没有很好的落地&#xff0c;所以本次的目标是&#xff0c;制定一个简单、易操…

【架构】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;禁止用于做非法攻击。注意靶场是可以练习的…

11 最小字符子串

给你一个字符串 s 、一个字符串 t 。返回 s 中涵盖 t 所有字符的最小子串。如果 s 中不存在涵盖 t 所有字符的子串&#xff0c;则返回空字符串 "" 。 注意&#xff1a; 对于 t 中重复字符&#xff0c;我们寻找的子字符串中该字符数量必须不少于 t 中该字符数量。如果…

LeetCode每周五题_2024/01/15~01/19

文章目录 82. 删除排序链表中的重复元素 II题目题解 82. 删除排序链表中的重复元素 II 82. 删除排序链表中的重复元素 II 题目 给定一个已排序的链表的头 head &#xff0c; 删除原始链表中所有重复数字的节点&#xff0c;只留下不同的数字 。返回 已排序的链表 。 题解 /**…