目录
第四章、SSM整合开发
4.1 概述
4.1.1 简介
SSM编程,即SpringMVC+Spring+MyBatis整合,是当前最为流行的JavaEE开发技术架构。其实SSM整合的实质,仅仅就是将MyBatis整合入Spring。因为SpringMVC原本就是Spring的一部分,不用专门整合。
三个框架的功能:
①SpringMVC:视图层、界面层,负责接收请求,显示处理结果的。
②Spring:业务层,管理service、dao、工具类对象的。
③MyBatis:持久层,访问数据库的。
用户发起请求---SpringMVC接收---调用Spring中的Service进行业务处理---MyBatis处理数据
SSM整合也叫做SSI(IBayis也就是MyBatis的前身),整合中有容器:
①第一个容器叫做SpringMVC容器,管理Controller控制器对象的。
②第二个容器叫做Spring容器,管理Service、Dao、工具类对象的。
我们要做的是把使用的对象交给合适的容器创建、管理。把Controller还有web开发的相关对
象交给SpringMVC容器,这些web用的对象写在SpringMVC配置文件中。 把Service,Dao对
象定义在spring的配置文件中,让spring管理这些对象。
springmvc容器和spring容器是有关系的,关系已经确定好。springmvc容器是spring容器的子
容器,类似java中的继承。子可以访问父的内容,在子容器中的Controller可以访问父容器中的
Service对象,就可以实现controller使用service对象。
SSM整合的实现方式可分为两种:
①基于 XML 配置方式
②基于注解方式。
4.1.2 开发步骤
1.创建数据库及建表;
2.新建maven web项目;
3.加入依赖:springmvc,spring,mybatis三个框架的依赖,jackson依赖,mysql驱动,druid连接池,jsp,servlet依赖;
4.配置web.xml文件:
①注册DispatcherServlet:创建springmvc容器对象,才能创建Controller类对象;创建的是
Servlet,才能接收用户的请求。
②注册spring的监听器:ContextLoaderListener。创建spring的容器对象,才能创建service、
dao等对象。
③注册字符集过滤器。解决post请求乱码的问题。
5.创建包。controller包、service、dao、实体类包名创建好;
6.写springmvc,spring,mybatis的配置文件:springmvc配置文件、spring配置文件、mybatis主配置文件、数据库的属性文件;
7.写代码,dao接口和mapper文件,servic和实现类,controller,实体类;
8.写jsp页面。
4.2 搭建SSM开发环境
4.2.1 maven的pom.xml文件
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.bjpowernode</groupId>
<artifactId>07-ssm</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>war</packaging>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<maven.compiler.source>1.8</maven.compiler.source>
<maven.compiler.target>1.8</maven.compiler.target>
</properties>
<dependencies>
<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.11</version>
<scope>test</scope>
</dependency>
<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>3.1.0</version>
<scope>provided</scope>
</dependency>
<!-- jsp依赖 -->
<dependency>
<groupId>javax.servlet.jsp</groupId>
<artifactId>jsp-api</artifactId>
<version>2.2.1-b03</version>
<scope>provided</scope>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-webmvc</artifactId>
<version>5.2.5.RELEASE</version>
</dependency>
<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>
<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>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>1.3.1</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.1</version>
</dependency>
<dependency>
<groupId>mysql</groupId>
&l