当前位置:网站首页>A brief introduction to the SSM framework
A brief introduction to the SSM framework
2022-07-31 08:33:00 【prosperous】
一. SSM框架简介及特征
1.SpringMVC
Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow 里面.Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块.使用 Spring 可插入的 MVC 架构,从而在使用Spring进行WEB开发时,可以选择使用Spring 的SpringMVC框架或集成其他MVC开发框架,如Struts1,Struts2等.
Spring MVC 分离了控制器、模型对象、过滤器以及处理程序对象的角色,这种分离让它们更容易进行定制
易于同其它View框架(Tiles等)无缝集成,采用IOC便于测试.
2.Spring
Spring Framework是一个开源的Java/Java EE全功能栈的应用程序框架, 以Apache许可证形式发布,也有.NET平台上的移植版本.Spring Framework 提供了一个简易的开发方式,这种开发方式,将避免那些可能致使底层代码 变得繁杂混乱的大量的属性文件和帮助类.
轻量—从大小与开销两方面而言Spring都是轻量的.Spring非侵入式的,应用中的对象不依赖于Spring特定类.
控制反转—Spring通过一种称作控制反转的技术促进了低耦合.不是对象从容器中查找依赖,而是容器在对象 初始化时不等对象请求就主动将依赖传递给它.
面向切面—Spring提供了面向切面编程的丰富支持,通过分离应用的业务逻辑与系统级服务进行内聚性的开发.
容器—Spring包含并管理应用对象的配置和生命周期,在这个意义上它是一种容器.
3.Mybatis
MyBatis是一个Java持久化框架,它通过XML描述符或注解把对象与存储过程或SQL语句关联起来. MyBatis是在Apache许可证 2.0下分发的自由软件,是iBATIS 3.0的分支版本.其维护团队也包含iBATIS的初创成员
1. 易于上手和掌握.
2. sql写在xml里,便于统一管理和优化.
3. 解除sql与程序代码的耦合.
4. 提供xml标签,支持编写动态sql.
二、SpringMVC流程架构图

三、SSM框架原理
Spring MVC运行原理
1.用户发送请求至 前端控制器DispatcherServlet.
2.前端控制器DispatcherServlet收到请求后调用处理器映射器HandlerMapping.
3.处理器映射器HandlerMapping根据请求的Url找到具体的处理器,生成处理器对象Handler及处理器拦截器 HandlerIntercepter(如果有则生成)一并返回给前端控制器DispatcherServlet.
4.前端控制器DispatcherServlet通过处理器适配器HandlerAdapter调用处理器Controller.
5.执行处理器(Controller,也叫后端控制器)
6.处理器Controller执行完后返回ModelAnView.
7.处理器映射器HandlerAdapter将处理器Controller执行返回的结果ModelAndView返回给 前端控制器DispatcherServlet.
8.前端控制器DispatcherServlet将ModelAnView传给视图解析器ViewResolver.
9.视图解析器ViewResolver解析后返回具体的视图View.
10.前端控制器DispatcherServlet对视图View进行渲染视图(即:将模型数据填充至视图中)
11.前端控制器DispatcherServlet响应用户.
Spring
Spring IOC容器,指的是控制反转,IOC容器负责实例化、定位、 配置应用程序中的对象及建立这些对象间的依赖.交由 Spring来管理这些,实现解耦
MyBatis的架构设计
1.使用传统的MyBatis提供的API 这是传统的传递Statement Id 和查询参数给 SqlSession 对象,使用 SqlSession对象完成和数据库的交互;然后根据Statement Id 和参数来操作数据库,这种方式固然很简单和实用,但是它不符合面向对象语言的概念和面向接口编程的编程习惯
2. 使用Mapper接口 由于面向接口的编程是面向对象的大趋势,MyBatis 为了适应这一趋势,增加了第二种使用MyBatis 支持接口(Interface)调用方式
Mybatis运行原理
1. 加载配置文件
将SQL的配置信息加载成为一个个MappedStatement对象,包括了参数映射配置,执行的SQL语句、 结果映射配置,存储在内存中.
2. SQL解析
当API接口层接收到调用请求时,会接收到传入SQL的ID和传入对象(可以是Map/JavaBean或者基本 数据类型),Mybatis会根据SQL的ID找到对应的MappedStatement, 然后根据传入的参数对象 MappedStatement进行解析,解析后可以得到最终要执行的SQL语句和参数.
3. SQL执行
将最终得到的SQL和参数拿到数据库执行,得到操作数据库的结果.
4. 结果映射
将操作数据库的结果按照映射的配置进行转换,可以转换成HashMap/JavaBean或者基本数据类型, 并将最终的结果返回.
四. SSM框架配置


Web.xml基本信息配置

SpringMVC基本信息配置
数据库基本信息配置

Mybatis配置文件

Spring基本信息配置–数据源

Spring基本信息配置–SessionFactory和Mapper接口扫描器
Spring基本信息配置–Service层Bean配置
Spring基本信息配置–事务管理基础配置

五. SSM框架使用

六. 其他实用Jar包
Jar包仓库地址:https://search.maven.org/classic/或http://mvnrepository.com/
Jar包管理器:Maven或者Gradle(比如:compile group: ‘com.baomidou’, name: ‘mybatis-plus’, version: ‘2.3’,会自动的将相关依赖的包文件下载.)
其他实用Jar包
Apache Shiro
Lombok
Druid
Mybatis-plus
eclipse自动提示+自动补全问题
自动提示:
1.首先,我们打开eclipse,选择菜单栏的window选项.
2.点击Windows,选择下拉菜单里面的preferences选项,之后在打开的对话框的左侧找到Java选项.
3.之后点击Java选项,选择展开后的子菜单editor选项,再点击editor选项,选择其展开后的子菜单content assist选项.
4.在右侧的对话框中auto activation 下的子选项auto activation triggers for java后的文本框中输入.abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ即可.
XML自动补全:
1.首先,我们打开eclipse,选择菜单栏的window选项.
2.点击Windows,选择下拉菜单里面的preferences选项,之后在打开的对话框的左侧找到XML选项.
3.之后点击XML选项,选择展开后的子菜单editor选项,再点击editor选项,选择其展开后的子菜单content assist选项.
4.在右侧的对话框中auto activation 下的子选项Prompt when these characters are inserted后的文本框中输入<=:abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ 即可.
先自我介绍一下,小编13年上师交大毕业,曾经在小公司待过,去过华为OPPO等大厂,18年进入阿里,直到现在.深知大多数初中级java工程师,想要升技能,往往是需要自己摸索成长或是报班学习,但对于培训机构动则近万元的学费,着实压力不小.自己不成体系的自学效率很低又漫长,而且容易碰到天花板技术停止不前.因此我收集了一份《java开发全套学习资料》送给大家,初衷也很简单,就是希望帮助到想自学又不知道该从何学起的朋友,同时减轻大家的负担.添加下方名片,即可获取全套学习资料哦
边栏推荐
猜你喜欢

How on one machine (Windows) to install two MYSQL database

shell/bash脚本命令教程

How to Install MySQL on Linux

vscode输出中文乱码问题

NK-RTU980烧写裸机程序

Failure scenarios of @Transactional annotations

SSM框架简单介绍

会话技术之Coookie && Session详解

Calculation example of matlab program iEEE9 node system for power flow calculation of AC-DC hybrid system based on alternate iteration method

LED flashing on CY7C68013A
随机推荐
【C#】判断字符串中是否包含指定字符或字符串(Contains/IndexOf)
C# 正则表达式汇总
torch分布式训练
【MySQL功法】第3话 · MySQL中常见的数据类型
Flutter Paystack 所有选项实现
MySql 5.7.38下载安装教程 ,并实现在Navicat操作MySql
SQL语句知识大全
傅里叶变换,拉普拉斯变换学习记录
SQL statement knowledge
2019 NeurIPS | Graph Convolutional Policy Network for Goal-Directed Molecular Graph Generation
MySQL中InnoDB的多版本并发控制(MVCC)的实现
vscode输出中文乱码问题
关于Error EPERM operation not permitted, mkdir...几种解决办法的比较
First acquaintance with NK-RTU980 development board
"C language game" entry-level chess game (robot enhanced version)
【MySQL功法】第5话 · SQL单表查询
【小程序项目开发--京东商城】uni-app之自定义搜索组件(上)-- 组件UI
7/28-7/29 Expectation + thinking + suffix array + ST table
mysql insert new field method
How to Install MySQL on Linux