Mybatis项目整合到Spring环境
一、现有环境
1、已经编写好的Mybatis项目
2、确保项目测试通过
3、Mapper代理模式(接口名与映射文件名一致却在同一路径下)
二、整合思路
1、将Mybatis中的sqlSessionFactory交由Spring管理
2、将Mapper接口对象交由Spring
**(注意:Mapper是线程不安全的,不直接交由Spring管理,是间接管理)**
三、整合过程
1.环境准备(jar)
Mybatis包:
mybatis-3.5.0.jar
MyBatis依赖包:
asm-7.0.jar
cglib-3.2.10.jar
commons-logging-1.2.jar
javassist-3.24.1-GA.jar
log4j-1.2.17.jar
log4j-api-2.11.1.jar
log4j-core-2.11.1.jar
ognl-3.2.10.jar
slf4j-api-1.7.25.jar
slf4j-log4j12-1.7.25.jar
Spring的基本包:
spring-beans-5.3.5.jar
spring-context-5.3.5.jar
spring-core-5.3.5.jar
spring-expression-5.3.5.jar
Spring的依赖包:(已经在MyBatis项目中导入,重复)
commons-logging-1.2.jar
log4j-1.2.17.jar
Spring的数据库存取相关的包:
spring-aop-5.3.5.jar
(AOP包)spring-aspects-5.3.5.jar
(AOP包)spring-jdbc-5.3.5.jar
spring-tx-5.3.5.jar
(事务管理,需要AOP功能来实现)
Spring的AOP的依赖包:
aopalliance-1.0.jar
aspectjweaver-1.9.2.jar
配置数据源所需要的包(C3P0连接池):
c3p0-0.9.5.2.jar
mchange-commons-java-0.2.11.jar
MySQL数据库驱动包:
mysql-connector-java-8.0.21.jar
整合关键包:
mybatis-spring-2.0.6.jar
maven 找包我认为比较靠谱的平台,也可以联系博主拿包
2.编写Spring配置文件(框架)
<?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"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx" xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd">
</beans>
3.配置迁移
将MyBatis配置文件中的数据源连接池配置(dataSource)迁移至Spring配置文件中
注意 :本项目采用C3P0来配置数据源,如不知晓,打开我的主页
4.配置sqlSessionFactory对象
在Spring配置文件中创建sqlSessionFactory工厂类对象,创建sqlSessionFactory实例bean,
并加载MyBatis全局配置文件、引入数据源连接池(dataSource)
<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<!-- 加载myBatis全局配置文件 -->
<property name="configLocation" value="mybatis全局配置文件路径"/>
<!-- 引用数据源连接池 -->
<property name="dataSource" ref="数据源连接池"/>
</bean>
5.配置Mapper接口对象
-
单个配置Mapper接口对象
mybatis-spring-2.0.6.jar
<bean id="接口对象名" class="org.mybatis.spring.mapper.MapperFactoryBean">-->
<property name="mapperInterface" value="接口路径" />
<property name="sqlSessionFactory" ref="引入工厂对象" />-->
</bean>-->
有多少个接口,就需要多少个
-
批量配置Mapper接口对象
MapperScannerConfigurer
<!-- 批量创建Mapper接口对象,生成的接口对象名称就是原来的接口名称首字母小写后的名称 -->
<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<property name="basePackage" value="接口所在根路径" />
<property name="sqlSessionFactoryBeanName" value="引入工厂对象" />
</bean>