一. 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 即可。