一、SSM框架
SSM 编程,即 SpringMVC + Spring + MyBatis 整合,是当前最为流行的 JavaEE 开发技术架构。
其实 SSM 整合的实质,仅仅就是将 MyBatis整合入 Spring。因为 SpringMVC原本就是 Spring的一部
分,不用专门整合。
SSM 整合的实现方式可分为两种:基于 XML 配置方式,基于注解方式。
自行查看教材P222,这里介绍XML+注解方式整合SSM框架。
二、整合原理
Spring:spring实现业务对象管理,也是各个组件的粘合剂,可以很好的管理各层之间的框架。
SpringMvc:负责请求的转发和视图管理,springmvc是spring的模块之一,所有整合的时候基本
上可以实现100%零配置。
mybatis:作为数据对象的持久化引擎,用做处理数据交互,对jdbc做了透明化的封装,相比于
hibernate这种全自动的框架,mybatis属于半自动化的,程序员可以自己写sql语句,相比于
hibernate跟具灵活性。
需要注意的是虽然springmvc是spring的模块之一,不用专门整合。但在搭建时,有会有两个spring容
器,我们要做的把使用的对象交给合适的容器对象创建,管理。
第一个容器springmvc容器,管理controller控制器对象。
第二个容器spring容器,管理service,mapper工具类对象.
三、开始整合
1、创建maven项目
略
2、加入pom依赖
<!-- 加入依赖 -->
<dependencies>
<!-- 单元测试 -->
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<!-- spring依赖 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.2.5.RELEASE</version>
</dependency>
<!-- spring事务依赖 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>5.2.5.RELEASE</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>5.2.5.RELEASE</version>
</dependency>
<!-- AspectJ依赖 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
<version>5.2.5.RELEASE</version>
</dependency>
<!-- mybatis依赖 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.1</version>
</dependency>
<!-- mybatis和spring集成依赖 -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.1</version>
</dependency>
<!-- mysql驱动 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.9</version>
</dependency>
<!-- 阿里的连接池 -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>1.1.12</version>
</dependency>
<!-- springMVC依赖 -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.5.RELEASE</version>
</dependency>
<!-- servlet依赖 -->
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<!-- json依赖 -->
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-core</artifactId>
<version>2.9.0</version>
</dependency>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-databind</artifactId>
<version>2.9.0</version>
</dependency>
<!-- 上传依赖 -->
<dependency>
<groupId>commons-fileupload</groupId>
<artifactId>commons-fileupload</artifactId>
<version>1.3.1</version>
</dependency>
</dependencies>
<!-- 配置搜索 xml 和properties资源,默认Java下面可能不会搜索 -->
<build>
<resources>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
</resource>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.properties</include>
<include>**/*.xml</include>
</includes>
<filtering>true</filtering>
</resource>
在项目根目录下面创建如下包:
cn.edu.qvtu.pojo:实体层,存放实体类
cn.edu.qvtu.mapper:数据访问层,存放dao接口和mapper映射文件
cn.edu.qvtu.service:业务逻辑层,存放service接口,对应实现类存放在impl子包内。
cn.edu.qvtu.controller:控制层,存放控制器,提供客户端访问。
cn.edu.qvtu.util:工具层,存放相关工具
5、设置配置文件
1、配置jdbc.properties
为了便于维护,可以将数据库连接信息写入到属性文件中,使 Spring 配置文件从中读取数据。
属性文件名称自定义,但一般都是放在 resources 下,名称为:jdbc.properties
2、配置mybatis.xml
在 resources 下创建mybatis.xml文件,并写入如下内容:
3、配置spring.xml
在 resources 下创建spring.xml文件,并写入如下内容:
jdbc.url=jdbc:mysql://localhost:3306/test?
serverTimezone=UTC&useSSL=false&characterEncoding=utf8
jdbc.username=root
jdbc.password=123
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!-- 设置日志 -->
<settings>
<setting name="logImpl" value="STDOUT_LOGGING"/>
</settings>
<mappers>
<!-- 将mapper包下的所有mapper映射文件全部扫描 -->
<package name="cn.edu.qvtu.mapper"/>
</mappers>
</configuration>
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context"