SSM框架整合
1.1 整合注意事项
- 查看不同MyBatis版本整合Spring时使用的适配包;
- 下载整合适配包
https://github.com/mybatis/spring/releases - 官方整合示例,jpetstore
https://github.com/mybatis/jpetstore-6
1.2 整合思路、步骤
- 搭建环境
创建一个动态的WEB工程
导入SSM需要使用的jar包
导入整合适配包
导入其他技术的一些支持包 连接池 数据库驱动 日志… - Spring + Springmvc
在web.xml中配置: Springmvc的前端控制器 实例化Spring容器的监听器 字符编码过滤器 REST 过滤器
创建Spring的配置文件: applicationContext.xml:组件扫描、 连接池、 事务…
创建Springmvc的配置文件: springmvc.xml : 组件扫描、 视图解析器 mvc:... - MyBatis
创建MyBatis的全局配置文件
编写实体类 Mapper接口 Mapper映射文件 - Spring + MyBatis :
MyBatis的 SqlSession的创建 .
MyBatis的 Mapper接口的代理实现类 - 测试: REST CRUD
课堂: 查询所有的员工信息,列表显示
课下: 增删改
1.3 整合的配置
1.3.1 web.xml
<?xml version="1.0" encoding="UTF-8"?> CharacterEncodingFilter org.springframework.web.filter.CharacterEncodingFilter encoding UTF-8 CharacterEncodingFilter /* HiddenHttpMethodFilter org.springframework.web.filter.HiddenHttpMethodFilter HiddenHttpMethodFilter /*<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet>
<servlet-name>springDispatcherServlet</servlet-name>
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
<init-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:springmvc.xml</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
<servlet-name>springDispatcherServlet</servlet-name>
<url-pattern>/</url-pattern>
</servlet-mapping>
1.3.2 Spring配置
<?xml version="1.0" encoding="UTF-8"?><!-- 组件扫描 -->
<context:component-scan base-package="com.atguigu.ssm">
<context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan>
<!-- 连接池 -->
<context:property-placeholder location="classpath:db.properties"/>
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="${jdbc.driver}"></property>
<property name="jdbcUrl" value="${jdbc.url}"></property>
<property name="user" value="${jdbc.username}"></property>
<property name="password" value="${jdbc.password}"></property>
</bean>
<!-- 事务 -->
<bean id="dataSourceTransactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"></property>
</bean>
<tx:annotation-driven transaction-manager="dataSourceTransactionManager"/>
1.3.3 SpringMVC配置
<?xml version="1.0" encoding="UTF-8"?><context:component-scan base-package=“com.atguigu.ssm” use-default-filters=“false”>
<context:include-filter type=“annotation”
expression=“org.springframework.stereotype.Controller”/>
</context:component-scan>
mvc:default-servlet-handler/
mvc:annotation-driven/
1.3.4 MyBatis配置
- 全局文件的配置
- SQL映射文件配置
<association property="dept" javaType="com.atguigu.ssm.beans.Department">
<id column="did" property="id"/>
<result column="dept_name" property="departmentName"/>
</association>
</resultMap>
1.3.5 Spring 整合MyBatis 配置
<!--1. SqlSession -->
<bean class="org.mybatis.spring.SqlSessionFactoryBean">
<!-- 指定数据源 -->
<property name="dataSource" ref="dataSource"></property>
<!-- MyBatis的配置文件 -->
<property name="configLocation"
value="classpath:mybatis-config.xml"></property>
<!-- MyBatis的SQL映射文件 -->
<property name="mapperLocations"
value="classpath:mybatis/mapper/*.xml"></property>
<property name="typeAliasesPackage"
value="com.atguigu.ssm.beans"></property>
</bean>
<!-- Mapper接口
MapperScannerConfigurer 为指定包下的Mapper接口批量生成代理实现类.bean的默认id是接口名首字母小写.
-->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="com.atguigu.ssm.mapper"></property>
</bean>
<!-- <mybatis-spring:scan base-package="com.atguigu.ssm.mapper"/> -->
1.4 整合测试
- 编写页面,发送请求:http://localhost:8888/ssm/employees
- 编写Handler,处理请求,完成响应
- 在页面中获取数据,显示数据