【Spring+SpringMVC+Mybatis】SSM框架的整合、思想、工作原理和优缺点的略微讲解

news/2024/7/24 10:22:34 标签: spring, spring boot, java, mybatis

🚀欢迎来到本文🚀
🍉个人简介:陈童学哦,目前学习C/C++、算法、Python、Java等方向,一个正在慢慢前行的普通人。
🏀系列专栏:陈童学的日记
💡其他专栏:C++STL,感兴趣的小伙伴可以看看。
🎁希望各位→点赞👍 + 收藏⭐️ + 留言📝 ​
⛱️万物从心起,心动则万物动🏄‍♂️

在这里插入图片描述

前言:SSM框架即是将Spring框架、SpringMVC框架、MyBatis框架整合使用。以简化在web开发中繁琐、重复的操作,让开发人员能够将精力专注于业务处理的开发上它是继SSH之后,目前比较主流的Java EE企业级框架,适用于搭建各种大型的企业级应用系统。

SSM框架是由什么整合的呢

SSM框架是Spring、Spring MVC 、和Mybatis框架的整合,是标准的MVC模式。标准的SSM框架有四层,分别是dao层(mapper),service层controller层view层。使用Spring实现业务对象管理,使用Spring MVC负责请求的转发和视图管理,Mybatis作为数据对象的持久化引擎。

在这里插入图片描述

SSM中的Spring框架

Spring是一个轻量级Java开发框架,最早由Rod Johnson创建,目的是为了解决企业级应用开发的业务逻辑层和其他各层的耦合问题。它是一个分层的JavaSE/JavaEE full-stack(一站式)轻量级开源框架,为开发Java应用程序提供全面的基础架构支持。Spring负责基础架构,因此Java开发者可以专注于应用程序的开发。简单来说,Spring是一个轻量级的控制反转(IoC)和面向切面(AOP)的容器框架。

SSM中的SpringMVC框架

Spring MVC是Spring提供的一个强大而灵活的web框架。借助于注解,Spring MVC提供了几乎是POJO的开发模式,使得控制器的开发和测试更加简单。这些控制器一般不直接处理请求,而是将其委托给Spring上下文中的其他bean,通过Spring的依赖注入功能,这些bean被注入到控制器中。

SSM中的Mybatis框架

MyBatis 是一款优秀的持久层框架,它支持定制化 SQL、存储过程以及高级映射。MyBatis 避免了几乎所有的 JDBC 代码和手动设置参数以及获取结果集。MyBatis 可以使用简单的 XML 或注解来配置和映射原生信息,将接口和 Java 的 POJOs(Plain Ordinary Java Object,普通的 Java对象)映射成数据库中的记录。

SSM中的四层结构

标准的SSM框架有四层,分别是dao层(mapper),service层,controller层和view层。我们在使用SSM框架时需要知道各层都有什么作用,这样我们在搭建框架的时候才能更加得心应手、事半功倍。

持久层:dao层(mapper)

Dao层主要是做数据持久层的工作,负责和数据库进行联络的一些任务在此封装,dao层的设计首先是dao的接口,配置数据源,以及有关数据库连接的参数在spring的配置文件中进行配置。

业务层:service层

service层实现业务的主要逻辑,是系统架构中体现核心价值的部分。将一个业务中所有的操作封装成一个方法,同时保证方法中所有的数据库更新操作,即保证同时成功或同时失败。避免部分成功部分失败引起的数据混乱操作。

表现层:controller层

controller层主要负责具体的业务模块流程的控制,在此层要调用service层的接口来控制业务流程。

在这里插入图片描述

SSM框架的思想

SSM框架根据SpringMVC、Spring、MyBatis三者各自的特性及应用场景对其操作的的业务进行了分割降低了耦合性

  • 1、Spring框架主要应用于请求的实际业务逻辑处理。
  • 2、SpringMVC框架主要应用于用户界面处理,接收用户请求以及展示请求处理结果。
  • 3、MyBatis主要应用于数据处理层,根据请求的处理过程的血药中对数据库进行操作。
    在这里插入图片描述

SSM框架的工作原理

Spring

Spring就像是整个项目中装配bean的大工厂,在配置文件中可以指定使用特定的参数去调用实体类的构造方法来实例化对象。也可以称之为项目中的粘合剂。Spring的核心思想是IOC(控制反转),即不再需要程序员去显式地new一个对象,而是让Spring框架帮你来完成这一切。

SpringMVC

SpringMVC在项目中拦截用户请求,它的核心Servlet即DispatcherServlet承担中介或是前台这样的职责,将用户请求通过HandlerMapping去匹配Controller,Controller就是具体对应请求所执行的操作。SpringMVC相当于SSH框架中struts。

MyBatis

MyBatis是对JDBC的封装,它让数据库底层操作变的透明。MyBatis的操作都是围绕一个sqlSessionFactory实例展开的。MyBatis通过配置文件关联到各实体类的Mapper文件,Mapper文件中配置了每个类对数据库所需进行的sql语句映射。在每次与数据库交互时,通过sqlSessionFactory拿到一个sqlSession,再执行sql命令。
页面发送请求给控制器,控制器调用业务层处理逻辑,逻辑层向持久层发送请求,持久层与数据库交互,后将结果返回给业务层,业务层将处理逻辑发送给控制器,控制器再调用视图展现数据。

在这里插入图片描述

SSM框架的优缺点

SSM框架有以下优点:

  • 1、低耦合,高内聚。通过使用IOC容器,依赖注入等技术,SSM框架实现了代码之间的低耦合,提高了代码的可维护性和可扩展性。

  • 2、简化开发。SSM框架提供了一系列的约定和配置,大大简化了Web应用程序的开发,同时也减少了冗余代码的编写。

  • 3、易于测试。SSM框架对代码的低耦合性和高内聚性,使得单元测试和集成测试变得更加容易。

  • 4、支持事务处理。MyBatis提供了数据库事务的管理,Spring提供了事务管理的支持,使得SSM框架可以方便地实现事务管理。

  • 5、开源免费。SSM框架是开源框架,可免费使用,避免了因为框架使用费用而增加项目成本。

SSM框架有以下缺点:

  • 1、学习曲线较陡峭。SSM框架整合了三个框架,对初学者而言,需要掌握的知识比较多,学习曲线比较陡峭。

  • 2、配置繁琐。由于SSM框架整合了多个框架,对于框架的配置较为复杂,需要耐心地阅读文档并进行配置。

  • 3、可能会存在冲突。由于SSM框架整合了多个框架,有可能会存在框架之间的冲突,需要进行相应的解决。


如果本文对大家有所帮助的话,还望各位能给我点赞、收藏并评论一下,感谢各位💕!!! 另如果大家有什么疑问或者建议的话,欢迎评论区留言。


http://www.niftyadmin.cn/n/4987849.html

相关文章

港交所MMDH行情协议

目录 一、交易时间 二、MMDH与OMD的差异 三、MMDH消息类型 四、MMDH的市场快照数据 内地市场数据枢纽-证券市场(OMD-MMDH) 港交所OMD-C对接笔记 - skylerjiang - 博客园 (cnblogs.com) 一、交易时间 图 1 港交所交易时间段 图 2 消息序列 二、MMDH与OMD的差异 图 3 标准…

安卓系列机型--软扩容“system分区扩容”操作步骤解析 增加系统分区大小

感兴趣的友友要区别扩容的概念。软扩容与硬扩容。硬扩容指拆解手机字库。更换大容量的字库来达到硬扩容。例如864硬扩容为8256等等。所谓的软扩容指的是将系统默认的系统分区大小修改分区表增大分区。例如原来系统分区默认2G。修改分区表为3G大小。意义在于可以刷写有些需要扩容…

echarts的click事件

目录 前言 一、click事件 前言 在使用echarts的过程中,最常用的则是不同系列所对应的click返回参数的不同 一、click事件 在以下图中,其实是两个不同系列的数据,一个是图中的钟表,一个是下面的图 const option {grid: {left: …

[学习笔记] fhq Treap 平衡树

fhq Treap 也叫无旋Treap (好像?我也不知道) 反正我带旋 Treap 是不会滴,其他的平衡树也不会(但是会平板电视) fhq Treap 好写,码量小,缺点是常数比较大 定义 二叉搜索树 二叉搜…

PHP多语言代入电商平台api接口采集拼多多根据ID获取商品详情原数据示例

拼多多商品详情原数据API接口的作用是获取拼多多电商平台上某一商品的详细信息,包括商品的标题、价格、库存、图片、描述、包邮信息、销量、评价、优惠券等数据。通过该API接口可以获取到商品的原始数据,用于分析、筛选和展示商品信息。 pinduoduo.item…

浏览器调起摄像头

浏览器调起摄像头 <template><div class"body">这里什么都没有<video id"videoCamera" class"video"></video><button click"getCompetence" class"btn">打开摄像头</button><butt…

容器权限降级为 op 用户

容器权限降级为 op 用户 更新 Docker Compose 配置文件&#xff1a; 请确保已提供的 docker-compose.yml 文件已准备好&#xff0c;并覆盖了原先的配置文件。 cd /home/op/compose设置文件和文件夹权限&#xff1a; 在 Linux 环境中&#xff0c;按照以下步骤逐一执行命令。在需…

第二部分:模型驱动设计

目录 关键的概念 之间的关系 关键的概念 Service&#xff08;领域服务&#xff09;、Entity&#xff08;实体&#xff09;、Value Object&#xff08;值对象&#xff09;、领域事件、 Aggregate&#xff08;聚合&#xff09;、 Aggregate root&#xff08;聚合根&#xff09;、…