SSM ? 陌生吗 ?我敢说来看这篇文章的你肯定不陌生~~~哈哈哈哈
关于 SSM,我第一次接触应该是在大四,毕业论文开题报告之前的几天,我改题的时候。当时由于准备实习的一些事,没有太多时间去完成论文的研究,接受导师的建议于是改成了毕设,选定的就是 SSM 框架。
那么这篇文章呢,我想分享一下有关 SSM 框架的一些知识。
目录
一、什么是 SSM ?
1. 概述
2. 什么是 Spring(spring)
3. 什么是 Spring MVC(spring MVC)
4. 什么是 mybatis(mybatis)
二、SSM 的作用和原理
1. 作用
2. 原理
1. Spring MVC:
2. Spring
3. Mybatis
三. Java中层次介绍
1. 持久层:DAO层(mapper)
2. 业务层:Service层
3. 表现层:Controller层
4. View层
5. 各层联系
四、SSM 系统架构图
五、专栏分享
首先第一个问题是什么呢 ?答案是肯定的:什么是 SSM 呢?
SSM:Spring+SpringMVC+MyBatis
SSM 框架集是由 Spring、MyBatis 两个开源框架整合而成。
SpringMVC 是 Spring 中的部分内容,常作为数据源较简单的 web 项目的框架。
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框架帮你来完成这一切。
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。
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框架是spring MVC ,spring和mybatis框架的整合,是标准的MVC模式,将整个系统划分为表现层,controller层,service层,DAO层四层。
使用spring MVC负责请求的转发和视图管理。
spring实现业务对象管理,mybatis作为数据对象的持久化引擎。
1.客户端发送请求到 DispacherServlet(分发器)
2.由 DispacherServlet 控制器查询 HanderMapping,找到处理请求的 Controller。
3.Controller 调用业务逻辑处理后,返回 ModelAndView。
4.DispacherSerclet 查询视图解析器,找到 ModelAndView 指定的视图
5.视图负责将结果显示到客户端
我们平时开发接触最多的估计就是IOC容器,它可以装载bean(也就是我们Java中的类,当然也包括service dao里面的),有了这个机制,我们就不用在每次使用这个类的时候为它初始化,很少看到关键字new。
另外spring的aop,事务管理等等都是我们经常用到的。
mybatis 是对 jdbc 的封装,它让数据库底层操作变的透明。mybatis 的操作都是围绕一个sqlSessionFactory 实例展开的。
mybatis 通过配置文件关联到各实体类的 Mapper 文件,Mapper 文件中配置了每个类对数据库所需进行的 sql 语句映射。
在每次与数据库交互时,通过 sqlSessionFactory 拿到一个 sqlSession,再执行sql命令。
DAO层:DAO层主要是做数据持久层的工作,负责与数据库进行联络的一些任务都封装在此。
DAO层的设计首先是设计DAO的接口。
然后在Spring的配置文件中定义此接口的实现类。
然后就可在模块中调用此接口来进行数据业务的处理,而不用关心此接口的具体实现类是哪个类,显得结构非常清晰。
DAO层的数据源配置,以及有关数据库连接的参数都在Spring的配置文件中进行配置。
Service层:Service层主要负责业务模块的逻辑应用设计。
首先设计接口,再设计其实现的类。
接着再在Spring的配置文件中配置其实现的关联。这样我们就可以在应用中调用Service接口来进行业务处理。
Service层的业务实现,具体要调用到已定义的DAO层的接口。
封装Service层的业务逻辑有利于通用的业务逻辑的独立性和重复利用性,程序显得非常简洁。
Controller层;Controller层负责具体的业务模块流程的控制。
在此层里面要调用Service层的接口来控制业务流程。
控制的配置也同样是在Spring的配置文件里面进行,针对具体的业务流程,会有不同的控制器,我们具体的设计过程中可以将流程进行抽象归纳,设计出可以重复利用的子单元流程模块,这样不仅使程序结构变得清晰,也大大减少了代码量。
View层 此层与控制层结合比较紧密,需要二者结合起来协同工发。
View层主要负责前台jsp页面的表示。
DAO层,Service层这两个层次都可以单独开发,互相的耦合度很低,完全可以独立进行,这样的一种模式在开发大项目的过程中尤其有优势。
Controller,View层因为耦合度比较高,因而要结合在一起开发,但是也可以看作一个整体独立于前两个层进行开发。这样,在层与层之前我们只需要知道接口的定义,调用接口即可完成所需要的逻辑单元应用,一切显得非常清晰简单。
Service层是建立在DAO层之上的,建立了DAO层后才可以建立Service层,而Service层又是在Controller层之下的,因而Service层应该既调用DAO层的接口,又要提供接口给Controller层的类来进行调用,它刚好处于一个中间层的位置。每个模型都有一个Service接口,每个接口分别封装各自的业务处理方法。
SSM 处理用户请求的整个过程
每个专栏都在持续更新中~~~
渗透测试自学篇
网络基础
web基础知识点
操作系统篇
python爬虫
闲聊
面试总结
python
通讯安全
靶场
推荐阅读:[ 渗透入门篇 ] 渗透行业必备术语大集合(一)
[ linux ] 文件系统和目录结构详解
[ 网络协议篇 ] 一篇文章让你掌握神秘的 DHCP(一)
[ 应急响应 ]服务器(电脑)受到攻击该如何处理?(一)
本文到这里就结束了,主要就简单谈了一下 SSM 理论知识。
看完本篇是不是意犹未尽~~~
我们下篇文章见 !^.^