SSM三大框架整合详细总结(Spring+SpringMVC+MyBatis)
阅读 352
收藏 44
2018-04-09
原文链接:cloud.tencent.com
腾讯云容器服务CSS,立即免费体验容器集群吧! cloud.tencent.com
使用 SSM ( Spring 、 SpringMVC 和 Mybatis )已经很久了,项目在技术上已经没有什么难点了,基
于现有的技术就可以实现想要的功能,当然肯定有很多可以改进的地方。之前没有记录 SSM 整合的过
程, 这次刚刚好基于自己的一个小项目重新搭建了一次,而且比项目搭建的要更好一些。以前解决问题的
过程和方法并没有及时记录,以后在自己的小项目中遇到我再整理分享一下。 这次 , 先说说 三大框架整
合过程 。个人认为使用框架并不是很难,关键要理解其思想,这对于我们提高编程水平很有帮助。不过,
如果用都不会,谈思想就变成纸上谈兵了!!! 先技术,再思想。实践出真知。
1、首先来个基本概念吧
Spring
Spring 是一个开源框架, Spring 是于 2003 年兴起的一个轻量级的 Java 开发框架,
由 Rod Johnson 在其著作 Expert One-On-One J2EE Development and Design 中阐述的部分理念和
原型衍生而来。它是为了解决企业应用开发的复杂性而创建的。 Spring 使用基本的 JavaBean 来完成以前
只可能由 EJB 完成的事情。然而, Spring 的用途不仅限于服务器端的开发。从简单性、可测试性和松耦
合的角度而言,任何 Java 应用都可以从 Spring 中受益。 简单来说, Spring 是一个轻量级的控制反转
( IoC )和面向切面( AOP )的容器框架。
SpringMVC
Spring MVC 属于 SpringFrameWork 的后续产品,已经融合在 Spring Web Flow 里
面。 Spring MVC 分离了控制器、模型对象、分派器以及处理程序对象的角色,这种分离让它们更容易进
行定制。
行定制。
MyBatis
MyBatis 本是 apache的一个开源项目iBatis, 2010 年这个项目由 apache software foundation 迁
移到了 google code ,并且改名为 MyBatis 。 MyBatis 是一个基于Java 的持久层框架。 iBATIS 提供的
持久层框架包括 SQL Maps 和 Data Access Objects ( DAO ) MyBatis 消除了几乎所有的 JDBC 代码
和参数的手工设置以及结果集的检索。 MyBatis 使用简单的 XML 或注解用于配置和原始映射,将接口
和 Java 的POJOs ( Plain Old Java Objects ,普通的 Java 对象)映射成数据库中的记录。
2、开发环境搭建
3、Maven Web项目创建
4、SSM整合
下面主要介绍三大框架的整合,至于环境的搭建以及项目的创建,参看上面的博文。这次整合我分
了 2 个配置文件 ,分别是 spring-mybatis.xml ,包含 spring 和 mybatis 的配置文件,还有个
是 spring-mvc 的配置文件,此外有 2 个资源文件 : jdbc.propertis 和 log4j.properties 。完整目录结
构如下:
使用框架都是较新的版本 :
Spring 4.0.2 RELEASE
Spring MVC 4.0.2 RELEASE
MyBatis 3.2.6
4.1、Maven引入需要的JAR包
为了方便后面说的时候不需要引入JAR包,我这里 直接给出所有需要的JAR包,这都是基本的JAR包 ,每
个包的是干什么的都有注释,就不再多说了。
pom.xml
4.2、Spring与MyBatis的整合
所有需要的 JAR 包都引入以后,首先进行 Spring 与 MyBatis 的整合,然后再进行 JUnit 测试,先看一个
项目结构图:
4.2.1、建立JDBC属性文件
jdbc.properties (文件编码修改为 utf-8 )
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://10.221.10.111:8080/db_zsl
username=demao
password=demao
#定义初始连接数
initialSize=0
#定义最大连接数
maxActive=20
#定义最大空闲
maxIdle=20
#定义最小空闲
minIdle=1
#定义最长等待时间
maxWait=60000
4.2.2、建立spring-mybatis.xml配置文件
这个文件就是用来完成spring和mybatis的整合的。这里面也没多少行配置,主要的就是 自动扫描,自动
注入,配置数据库 。注释也很详细,大家看看就明白了。
spring-mybatis.xml
4.2.3、Log4j的配置
为了方便调试,一般都会使用日志来输出信息, Log4j是 Apache 的一个开放源代码项目,通过使用
Log4j,我们可以控制 日志 信息输送的目的地是 控制台 、文件、GUI 组件,甚至是套接口服务
Log4j,我们可以控制 日志 信息输送的目的地是 控制台 、文件、GUI 组件,甚至是套接口服务
器、 NT 的事件记录器、 UNIX Syslog 守护进程等;我们也可以控制每一条日志的输出格式;通过定义每
一条日志信息的级别,我们能够更加细致地控制日志的生成过程。
Log4j 的配置很简单,而且也是 通用的 ,下面 给出一个基本的配置 ,换到其他项目中也无需做多大
的调整, 如果想做调整 或者想了解 Log4j 的各种配置,可以查看这个博文
blog.csdn.net/zhshulin/ar…
下面给出配置文件目录:
log4j.properties
#定义LOG输出级别
log4j.rootLogger=INFO,Console,File
#定义日志输出目的地为控制台
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.Target=System.out
#可以灵活地指定日志输出格式,下面一行是指定具体的格式
log4j.appender.Console.layout = org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=[%c] - %m%n
#文件大小到达指定尺寸的时候产生一个新的文件
log4j.appender.File = org.apache.log4j.RollingFileAppender
#指定输出目录
log4j.appender.File.File = logs/ssm.log
#定义文件最大大小
log4j.appender.File.MaxFileSize = 10MB
# 输出所以日志,如果换成DEBUG表示输出DEBUG以上级别日志
log4j.appender.File.Threshold = ALL
log4j.appender.File.layout = org.apache.log4j.PatternLayout
log4j.appender.File.layout.ConversionPattern =[%p] [%d{yyyy-MM-dd HH\:mm\:ss}][%c]%m%n
4.2.4、JUnit测试
经过以上步骤(到4.2.2,log4j不配也没影响),我们 已经完成了Spring和mybatis的整合 ,这样我
们就可以编写一段测试代码来试试是否成功了。
4.2.4.1、创建测试用表
既然我们需要测试,那么我们就需要建立在数据库中建立一个测试表,这个表建的很简单, SQL 语句为:
DROP TABLE IF EXISTS `user_t`;
CREATE TABLE `user_t` (