spring与mybatis整合了以后,mybatis的相关配置都被整合到了spring的核心配置文件当中
1.首先是约束头
导入含配置数据源四个参数的properties文件
![b59a0caa756bd6dcad28a88d4d7e77c9.png](https://i-blog.csdnimg.cn/blog_migrate/d89b3c04282c8353d8eaafa5d3939850.png)
<context:property-placeholder
配置数据源,使用的是c3p0数据库(由于spring的IOC,导致mybatis的配置都成了bean的形式)
3.<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="${jdbc.driver}"/>
<property name="jdbcUrl" value="${jdbc.url}"/>
<property name="user" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
<property name="minPoolSize" value="2"/>
<property name="maxPoolSize" value="30"/>
</bean>
我们以前配置好数据库,mapper映射器,写好mapper.xml以后
就是加载配置文件,产生数据流,利用会话工厂创建者(导入数据流)创建会话工厂。
利用会话工厂创建会话(会话创建成功,相应的接口实例,也就随之被创建出来了)
只有mybatis框架时加粗部分是通过代码实现的,整合了spring这些都通过配置来实现
获取sqlSessionFactory工厂
4.<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
<!--注入数据源-->
<property name="dataSource" ref="dataSource"/>
<!--该实体类起别名-->
<property name="typeAliasesPackage" value="cn.edu.nuc.model"/>
<!--指明mapper.xml的位置-->
<property name="mapperLocations" value="classpath:mapper/*.xml"/>
</bean>
maven工程下的ssm中接口和配置文件是分离的,如果和接口写在一块,xml文件就不会被扫描(默认只扫描resources文件夹下的资源,当然也可以配置不过有点麻烦),在这一点上与只有mybatis框架是不同的。
扫描mapper层接口
5.<bean id="mapper" class="org.mybatis.spring.mapper.MapperScannerConfigurer">
<!--注入会话工厂-->
<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
<!--指明mapper包下所有的mapper接口-->
<property name="basePackage" value="cn.edu.nuc.mapper"/>
</bean>
扫描注解
6.<context:component-scan base-package="cn.edu.nuc"/>
配置事务管理器
7.<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<!--注入数据源即可-->
<property name="dataSource" ref="dataSource"/>
</bean>
开启事务注解
8.<tx:annotation-driven></tx:annotation-driven>