<?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:tx="http://www.springframework.org/schema/tx"
xmlns:aop="http://www.springframework.org/schema/aop"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-4.3.xsd
http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.3.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-4.3.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.3.xsd">
<!-- 扫描service层注解 -->
<context:component-scan base-package="com.szsxt.yt.service"/>
<!-- 配制Spring事务AOP实现,通过事务管理器管理事物 -->
<!-- 配制MyBatis事务管理器
DataSourceTransactionManager - 用于来管理MyBatis事务
HibernateTransactionManager - 用于来管理Hibernate事务
-->
<bean id="dbTransactionManager"
class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<!-- 引用数据源 -->
<property name="dataSource" ref="druidDataSource"/>
</bean>
<!-- 通知使用Spring内部的通知,引入tx命名空间,引用事务管理器 -->
<tx:advice transaction-manager="dbTransactionManager" id="txAdvice">
<!-- 配置 连接点(方法) 隔离级别 传播性 -->
<tx:attributes>
<!-- 所有连接点配制 -->
<!-- isolation - 设置隔离级别 propagation - 传播性 -->
<tx:method name="*" isolation="READ_COMMITTED" propagation="REQUIRED" read-only="false"/>
<!-- 查询 -->
<tx:method name="query*" propagation="SUPPORTS" read-only="true"/>
<tx:method name="list*" propagation="SUPPORTS" read-only="true"/>
<tx:method name="get*" propagation="SUPPORTS" read-only="true"/>
<!-- 增加 -->
<tx:method name="save*"/>
<tx:method name="insert*"/>
<tx:method name="add*"/>
<tx:method name="create*"/>
<!-- 删除 -->
<tx:method name="delete*"/>
<tx:method name="modify*"/>
<tx:method name="update*"/>
<tx:method name="modify*"/>
</tx:attributes>
</tx:advice>
<aop:config>
<!-- 顾问= 切入点+通知 -->
<aop:pointcut expression="execution(* com.szsxt.yt.mapper.*.*(..))" id= "pointCut"/>
<!-- 顾问 -->
<aop:advisor advice-ref="txAdvice" pointcut-ref="pointCut"/>
</aop:config>
</beans>