[ SSM ] 浅谈 SSM 框架(Spring+SpringMVC+MyBatis)

简介: SSM ? 陌生吗 ?我敢说来看这篇文章的你肯定不陌生~~~哈哈哈哈关于 SSM,我第一次接触应该是在大四,毕业论文开题报告之前的几天,我改题的时候。当时由于准备实习的一些事,没有太多时间去完成论文的研究,接受导师的建议于是改成了毕设,选定的就是 SSM 框架。那么这篇文章呢,我想分享一下有关 SSM 框架的一些知识。

一、什么是 SSM ?



1. 概述


SSM:Spring+SpringMVC+MyBatis

SSM 框架集是由 Spring、MyBatis 两个开源框架整合而成。

SpringMVC 是 Spring 中的部分内容,常作为数据源较简单的 web 项目的框架。


2. 什么是 Spring(spring)


Spring 框架是一个开放源代码的 J2EE 应用程序框架,由 Rod Johnson 发起,是针对 bean 的生命周期进行管理的轻量级容器。


Spring 解决了开发者在 J2EE 开发中遇到的许多常见的问题,提供了功能强大IOC、AOP 及 Web MVC 等功能。


Spring 可以单独应用于构筑应用程序,也可以和 Struts、Webwork、Tapestry 等众多Web框架组合使用,并且可以与 Swing 等桌面应用程序 AP 组合。


因此,Spring 不仅仅能应用于 J2EE 应用程序之中,也可以应用于桌面应用程序以及小应用程序之中。Spring框 架主要由七部分组成,分别是 Spring Core、 Spring AOP、 Spring ORM、 Spring DAO、Spring Context、 Spring Web 和 Spring Web MVC。

Spring就像是整个项目中装配bean的大工厂,在配置文件中可以指定使用特定的参数去调用实体类的构造方法来实例化对象。也可以称之为项目中的粘合剂。


Spring的核心思想是IoC(控制反转),即不再需要程序员去显式地`new`一个对象,而是让Spring框架帮你来完成这一切。


3. 什么是 Spring MVC(spring MVC)


Spring MVC 属于 SpringFrameWork 的后续产品,已经融合在 Spring Web Flow 里面。


Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。


使用 Spring 可插入的 MVC 架构,从而在使用Spring进行WEB开发时,可以选择使用 Spring 的Spring MVC 框架或集成其他MVC开发框架,如 Struts1(现在一般不用),Struts 2(一般老项目使用)等等。


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


SpringMVC相当于SSH框架中struts。


4. 什么是 mybatis(mybatis)


MyBatis 本是 apache 的一个开源项目 iBatis, 2010年这个项目由 apache software foundation 迁移到了 google code,并且改名为 MyBatis 。


iBATIS 一词来源于 "internet" 和 "abatis" 的组合,是一个基于 Java 的持久层框架。

iBATIS 提供的持久层框架包括 SQL Maps 和 Data Access Objects(DAOs)。

mybatis 是对 jdbc 的封装,它让数据库底层操作变的透明。


mybatis 的操作都是围绕一个 sqlSessionFactory 实例展开的。


mybatis 通过配置文件关联到各实体类的 Mapper 文件,Mapper  文件中配置了每个类对数据库所需进行的 sql 语句映射。在每次与数据库交互时,通过 sqlSessionFactory 拿到一个sqlSession,再执行 sql 命令。


页面发送请求给控制器,控制器调用业务层处理逻辑,逻辑层向持久层发送请求,持久层与数据库交互,后将结果返回给业务层,业务层将处理逻辑发送给控制器,控制器再调用视图展现数据。


二、SSM 的作用和原理



1. 作用


SSM框架是spring MVC ,spring和mybatis框架的整合,是标准的MVC模式,将整个系统划分为表现层,controller层,service层,DAO层四层。


使用spring MVC负责请求的转发和视图管理。


spring实现业务对象管理,mybatis作为数据对象的持久化引擎。


2. 原理


1. Spring MVC:

1.客户端发送请求到 DispacherServlet(分发器)

2.由 DispacherServlet 控制器查询 HanderMapping,找到处理请求的 Controller。

3.Controller 调用业务逻辑处理后,返回 ModelAndView。

4.DispacherSerclet 查询视图解析器,找到 ModelAndView 指定的视图

5.视图负责将结果显示到客户端

image.png


2. Spring

我们平时开发接触最多的估计就是IOC容器,它可以装载bean(也就是我们Java中的类,当然也包括service dao里面的),有了这个机制,我们就不用在每次使用这个类的时候为它初始化,很少看到关键字new。


另外spring的aop,事务管理等等都是我们经常用到的。


3. Mybatis

mybatis 是对 jdbc 的封装,它让数据库底层操作变的透明。mybatis 的操作都是围绕一个sqlSessionFactory 实例展开的。


mybatis 通过配置文件关联到各实体类的 Mapper 文件,Mapper 文件中配置了每个类对数据库所需进行的 sql 语句映射。


在每次与数据库交互时,通过 sqlSessionFactory 拿到一个 sqlSession,再执行sql命令。


三. Java中层次介绍



1. 持久层:DAO层(mapper)


DAO层:DAO层主要是做数据持久层的工作,负责与数据库进行联络的一些任务都封装在此。


DAO层的设计首先是设计DAO的接口。


然后在Spring的配置文件中定义此接口的实现类。


然后就可在模块中调用此接口来进行数据业务的处理,而不用关心此接口的具体实现类是哪个类,显得结构非常清晰。


DAO层的数据源配置,以及有关数据库连接的参数都在Spring的配置文件中进行配置。


2. 业务层:Service层


Service层:Service层主要负责业务模块的逻辑应用设计。


首先设计接口,再设计其实现的类。


接着再在Spring的配置文件中配置其实现的关联。这样我们就可以在应用中调用Service接口来进行业务处理。


Service层的业务实现,具体要调用到已定义的DAO层的接口。


封装Service层的业务逻辑有利于通用的业务逻辑的独立性和重复利用性,程序显得非常简洁。


3. 表现层:Controller层


Controller层;Controller层负责具体的业务模块流程的控制。

在此层里面要调用Service层的接口来控制业务流程。

控制的配置也同样是在Spring的配置文件里面进行,针对具体的业务流程,会有不同的控制器,我们具体的设计过程中可以将流程进行抽象归纳,设计出可以重复利用的子单元流程模块,这样不仅使程序结构变得清晰,也大大减少了代码量。


4. View层


View层 此层与控制层结合比较紧密,需要二者结合起来协同工发。

View层主要负责前台jsp页面的表示。


5. 各层联系


DAO层,Service层这两个层次都可以单独开发,互相的耦合度很低,完全可以独立进行,这样的一种模式在开发大项目的过程中尤其有优势。


Controller,View层因为耦合度比较高,因而要结合在一起开发,但是也可以看作一个整体独立于前两个层进行开发。这样,在层与层之前我们只需要知道接口的定义,调用接口即可完成所需要的逻辑单元应用,一切显得非常清晰简单。


Service层是建立在DAO层之上的,建立了DAO层后才可以建立Service层,而Service层又是在Controller层之下的,因而Service层应该既调用DAO层的接口,又要提供接口给Controller层的类来进行调用,它刚好处于一个中间层的位置。每个模型都有一个Service接口,每个接口分别封装各自的业务处理方法。


四、SSM 系统架构图



SSM 处理用户请求的整个过程

image.png

相关文章
|
2月前
|
安全 Java Ruby
我尝试了所有后端框架 — — 这就是为什么只有 Spring Boot 幸存下来
作者回顾后端开发历程,指出多数框架在生产环境中难堪重负。相比之下,Spring Boot凭借内置安全、稳定扩展、完善生态和企业级支持,成为构建高可用系统的首选,真正经受住了时间与规模的考验。
248 2
|
1月前
|
安全 前端开发 Java
《深入理解Spring》:现代Java开发的核心框架
Spring自2003年诞生以来,已成为Java企业级开发的基石,凭借IoC、AOP、声明式编程等核心特性,极大简化了开发复杂度。本系列将深入解析Spring框架核心原理及Spring Boot、Cloud、Security等生态组件,助力开发者构建高效、可扩展的应用体系。(238字)
|
1月前
|
消息中间件 缓存 Java
Spring框架优化:提高Java应用的性能与适应性
以上方法均旨在综合考虑Java Spring 应该程序设计原则, 数据库交互, 编码实践和系统架构布局等多角度因素, 旨在达到高效稳定运转目标同时也易于未来扩展.
118 8
|
9月前
|
存储 Java 关系型数据库
ssm026校园美食交流系统(文档+源码)_kaic
本文介绍了基于Java语言和MySQL数据库的校园美食交流系统的设计与实现。该系统采用B/S架构和SSM框架,旨在提高校园美食信息管理的效率与便捷性。主要内容包括:系统的开发背景、目的及内容;对Java技术、MySQL数据库、B/S结构和SSM框架的介绍;系统分析部分涵盖可行性分析、性能分析和功能需求分析;最后详细描述了系统各功能模块的具体实现,如登录、管理员功能(美食分类管理、用户管理等)和前台首页功能。通过此系统,管理员可以高效管理美食信息,用户也能方便地获取和分享美食资讯,从而提升校园美食交流的管理水平和用户体验。
|
Java 数据库连接 Maven
手把手教你如何搭建SSM框架、图书商城系统案例
这篇文章是关于如何搭建SSM框架以及实现一个图书商城系统的详细教程,包括了项目的配置文件整合、依赖管理、项目结构和运行效果展示,并提供了GitHub源码链接。
手把手教你如何搭建SSM框架、图书商城系统案例
|
8月前
|
Java 关系型数据库 MySQL
weixin050高校体育场管理系统+ssm(文档+源码)_kaic
本文针对高校体育场管理系统的开发与实现进行详细介绍。随着经济快速发展,人们对手机软件需求增加,高校体育场管理系统应运而生。系统采用JAVA技术、Mysql数据库和SSM框架等成熟技术,通过分析功能需求、可行性及性能,设计出包含管理员、用户和学生角色的功能模块。系统实现用户注册登录、信息管理等功能,简化传统手工统计模式,提高管理效率,满足用户对信息获取的及时性与准确性需求。
weixin050高校体育场管理系统+ssm(文档+源码)_kaic
|
8月前
|
前端开发 Java 关系型数据库
基于ssm的社区物业管理系统,附源码+数据库+论文+任务书
社区物业管理系统采用B/S架构,基于Java语言开发,使用MySQL数据库。系统涵盖个人中心、用户管理、楼盘管理、收费管理、停车登记、报修与投诉管理等功能模块,方便管理员及用户操作。前端采用Vue、HTML、JavaScript等技术,后端使用SSM框架。系统支持远程安装调试,确保顺利运行。提供演示视频和详细文档截图,帮助用户快速上手。
341 17
|
8月前
|
前端开发 Java 关系型数据库
基于ssm的超市会员(积分)管理系统,附源码+数据库+论文,包安装调试
本项目为简单内容浏览和信息处理系统,具备管理员和员工权限。管理员可管理会员、员工、商品及积分记录,员工则负责积分、商品信息和兑换管理。技术框架采用Java编程语言,B/S架构,前端使用Vue+JSP+JavaScript+Css+LayUI,后端为SSM框架,数据库为MySQL。运行环境为Windows,JDK8+Tomcat8.5,非前后端分离的Maven项目。提供演示视频和详细文档,购买后支持免费远程安装调试。
365 19
|
8月前
|
前端开发 JavaScript Java
[Java计算机毕设]基于ssm的OA办公管理系统的设计与实现,附源码+数据库+论文+开题,包安装调试
OA办公管理系统是一款基于Java和SSM框架开发的B/S架构应用,适用于Windows系统。项目包含管理员、项目管理人员和普通用户三种角色,分别负责系统管理、请假审批、图书借阅等日常办公事务。系统使用Vue、HTML、JavaScript、CSS和LayUI构建前端,后端采用SSM框架,数据库为MySQL,共24张表。提供完整演示视频和详细文档截图,支持远程安装调试,确保顺利运行。
357 17
|
8月前
|
前端开发 Java 关系型数据库
基于ssm的网络直播带货管理系统,附源码+数据库+论文
该项目为网络直播带货网站,包含管理员和用户两个角色。管理员可进行主页、个人中心、用户管理、商品分类与信息管理、系统及订单管理;用户可浏览主页、管理个人中心、收藏和订单。系统基于Java开发,采用B/S架构,前端使用Vue、JSP等技术,后端为SSM框架,数据库为MySQL。项目运行环境为Windows,支持JDK8、Tomcat8.5。提供演示视频和详细文档截图。
258 10

热门文章

最新文章