spring部分:applicationContext.xml文件配置
1.配置数据源 dataSource
<!-- 配置数据源 -->
	<bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource">
		  <property name="driverClassName" value="com.mysql.jdbc.Driver"/>
		  <property name="url" value="jdbc:mysql://localhost:3306/db_maven"/>
		  <property name="username" value="root"/>
		  <property name="password" value="oursql"/>
	</bean>
2.配置sqlSessionFactory,
2.1 引入dataSource,
2.2 自动扫描mappers.xml文件,
2.3 引入mybatis配置文件
<!-- 配置mybatis的sqlSessionFactory -->
	<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
		  <property name="dataSource" ref="dataSource" />
		  <!-- 自动扫描mappers.xml文件 -->
		  <property name="mapperLocations" value="classpath:com/java/user/mappers/*.xml"></property>
		  <!-- mybatis配置文件 -->
		  <property name="configLocation" value="classpath:mybatis-config.xml"></property>
	</bean>
3.配置dao扫描器,扫描/mappers/*.xml对应的mapper接口类,需要引入sqlSessionFactory
<!-- DAO接口所在包名,Spring会自动查找其下的类 -->
	<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
		  <property name="basePackage" value="com.java.user.dao" />
		  <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>
	</bean>
4.配置事务
<!-- (事务管理)transaction manager, use JtaTransactionManager for global tx -->
	<bean id="transactionManager"  class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
		  <property name="dataSource" ref="dataSource" />
	</bean>
<!-- 配置事务通知属性 --> 
    <tx:advice id="txAdvice" transaction-manager="transactionManager">  
          <!-- 定义事务传播属性 -->  
          <tx:attributes>  
                <tx:method name="insert*" propagation="REQUIRED" />  
                <tx:method name="update*" propagation="REQUIRED" />  
                <tx:method name="edit*" propagation="REQUIRED" />  
                <tx:method name="save*" propagation="REQUIRED" />  
                <tx:method name="add*" propagation="REQUIRED" />  
                <tx:method name="new*" propagation="REQUIRED" />  
                <tx:method name="set*" propagation="REQUIRED" />  
                <tx:method name="remove*" propagation="REQUIRED" />  
                <tx:method name="delete*" propagation="REQUIRED" />  
                <tx:method name="change*" propagation="REQUIRED" />  
                <tx:method name="check*" propagation="REQUIRED" />  
                <tx:method name="get*" propagation="REQUIRED" read-only="true" />  
                <tx:method name="find*" propagation="REQUIRED" read-only="true" />  
                <tx:method name="load*" propagation="REQUIRED" read-only="true" />  
                <tx:method name="*" propagation="REQUIRED" read-only="true" />  
          </tx:attributes>  
    </tx:advice> 
 <!-- 配置事务切面 --> 
    <aop:config>  
          <aop:pointcut id="serviceOperation"  expression="execution(* com.java.user.service.*.*(..))" />  
          <aop:advisor advice-ref="txAdvice" pointcut-ref="serviceOperation" />  
    </aop:config>
原文:https://www.cnblogs.com/wxseng/p/9563429.html