SSM框架 | 袁庭新老师手把手带你实现Spring+SpringMVC+MyBatis框架整合
我们已经学习了Spring、SpringMVC和MyBatis框架,那么这三个框架如何结合在一块儿使用呢?首先,需要将者三个框架进行整合。那么,袁老师就给大家安排上。本节袁老师将给大家介绍SSM框架的整合流程,并带大家最终完成Web应用程序的开发。袁老师保证,只要你认真看完,肯定会有斩获哦。

01 项目环境搭建
1.1 搭建项目结构
首先我们要选择【Java Enterprise】选项,将项⽬名称设置为ssm-integration。项⽬的GAV坐标中GroupId的值设置为com.cy.ssm,Artfact选项的值设置为controller,并将Project template选项的值设置成Web application,其他保持默认。
然后要将项⽬com.cy.controller包下⾃动⽣成的HelloServlet类删除,并将webapp⽂件夹下⾃动⽣成的index.jsp⽂件删除。
之后在项目的com.cy.ssm包下创建pojo、mapper、service、service.impl、controller的包结构。

最后就可以在webapp目录下创建css、img、js等文件夹,并在WEB-INF目录下创建pages文件夹了。
1.2 配置Tomcat
我们可以在IDEA窗口的右上角点击【Add Configurations】按钮,打开Run/Debug Configurations窗口。
接着在Run/Debug Configurations窗口中点击【+】号,选择Tomcat Server选项下的Local选项。点击右下角的【Fix】选项。

然后在Deployment选项下点击【+】号按钮,选择【Artifact】选项,在新打开的窗口中选择【ssm-integration:war expolded】选项。

最后启动Tomcat服务器,访问下面地址,进行初始化环境测试。
1.3 添加SSM依赖
修改pom.xml文件,首先将编译版本改为11版本(根据安装的JDK版本来确定配置的编译版本)。
在pom.xml文件中添加SSM框架所需的相关依赖配置。
02 Spring环境搭建
下面先跟袁老师来搭建Spring环境,主要是Spring配置以及Spring环境测试,最后我们再配置log4j日志。
2.1 Spring配置
在resources目录下,创建applicationContext.xml配置文件。
在web.xml配置文件中添加在Web容器启动时就加载Spring的核心配置文件applicationContext.xml。
2.2 Spring容器整合技巧
1.整合思路
此时项目中有两个工厂:
DispatcherServlet启动的SpringMVC工厂,负责生产Controller及SpringMVC自己的系统组件。
ContextLoaderListener启动的Spring工厂,负责生产其他所有组件。
SpringMVC的工厂会被设置为Spring工厂的子工厂,可以随意获取Spring工厂中的组件。
整合过程,就是累加:代码+依赖+配置。然后将Service注入给Controller即可。
2.整合技巧实现
两个工厂不能有彼此侵入,即生产的组件不能有重合。在applicationContext.xml文件中添加开启组件扫描的配置。
2.3 Spring环境测试
在src/test/java包下创建com.cy.ssm包,并在该包下创建SpringTests测试类,测试Spring的环境是否正常。
2.4 log4j配置
在运行上述testSpring()单元测试时,控制台会提示log4j:WARN的警告信息。
在项目的resources文件夹下创建log4j.properties文件,并在log4j.properties文件中添加log4j日志的配置信息,这一步的前提是需要导入log4j的依赖。
03 Spring整合MyBatis
3.1 MyBatis配置
1.MyBatis核心配置文件
在src/main/resources目录下,创建MyBatis的核心配置文件mybatis-config.xml。
在mybatis-config.xml配置文件中开启驼峰映射和二级缓存。
2.MyBatis数据源文件
在src/main/resources目录下创建mappers文件夹,将来用于存放MyBatis的映射文件。在src/main/resources目录下创建jdbc.properties数据源文件。
注意:在jdbc.properties配置文件中数据库的连接名不能使用username的属性名,否则会报错。因此在数据源文件中添加固定前缀以区分。
3.2 Spring整合MyBatis实现
1.Druid连接池配置
在applicationContext.xml配置文件中添加MyBatis框架的整合以及配置事务控制。
2.Druid监控中心配置
在当前的项目的web.xml文件中添加Druid的StatViewServlet组件的配置。
测试Druid监控中心。访问以下地址进行测试。
Druid访问的语法url格式:http://ip:port/project/druid/index.html

3.3 整合MyBatis
1.导入依赖
在pom.xml文件中导入spring-jdbc和mybatis-spring依赖。
2.配置SqlSessionFactoryBean
在applicationContext.xml核心配置文件中配置SqlSessionFactoryBean工厂。
3.配置MapperScannerConfigurer
在applicationContext.xml文件中添加Mapper扫描器MapperScannerConfigurer的配置。作用是:管理Mapper实现类的创建,并创建Mapper对象,存入工厂管理。
扫描所有Mapper接口,去构建Mapper实现。
将Mapper实现存入工厂管理。
Mapper实现对象在工厂中的id是:“首字母小写的接口的类名”。
说明:MapperScannerConfigurer类是Spring框架和MyBatis框架整合时mybatis-spring依赖提供的一个类。其作用是自动扫描,将Mapper接口生成代理注入到Spring容器中。
4.配置DataSourceTransactionManager
在applicationContext.xml文件中配置事务管理器。事务管理器其中持有DataSource对象,可以控制事务功能(commit和rollback等)。
注意:DataSourceTransactionManager和SqlSessionFactoryBean要注入同一个DataSource的Bean,否则事务控制失败。
5.配置事务通知
基于事务管理器进一步定制,生成一个额外功能Advice。此Advice可以切入任何需要事务的方法,通过事务管理器为方法控制事务。我们可以在applicationContext.xml文件中配置事务规则和AOP切面。
3.4 MyBatis环境测试
在src/test/java下的com.cy.ssm包下创建MyBatisTests测试类,测试MyBatis的环境是否正常。
注意:获取的org.mybatis.spring.SqlSessionFactoryBean类型的对象需要使用SqlSessionFactory类型来接收。否则会抛出类型转化异常,具体见下:
04 SpringMVC整合
4.1 SpringMVC配置
在resources目录下创建springmvc-servlet.xml配置文件,并在文件中添加SpringMVC的相关配置。
在web.xml文件中添加SpringMVC框架的前端控制器的配置,以及字符编码过滤器的配置和服务器启动页的配置。
4.2 SpringMVC环境测试
在controller包下创建TestController类,并添加处理test请求的处理方法。
启动Tomcat服务器,访问如下地址进行测试。
响应结果见下:
05 SSM架构总结
通过以上关于SSM框架的介绍,相信通过对SSM框架的整合流程有了很深入的了解。在Spring+SpringMVC+MyBatis架构下,框架之间的职责分工见下图:

通过上图的分析,是不是对SSM框架负责的模块理解的更加深刻了。这篇文章我们主要介绍了Spring环境的大家,以及如何使用Spring整合MyBatis框架和SpringMVC框架的整合。通过以上内容的学习,相信各位小伙伴一定可以自行搭建起SSM框架的架构环境。好了,关于SSM框架的搭建内容袁老师就给大家介绍到这里。