标签:except required pre tle ola advice 接口 drive 思想
目录
spring的事务管理是把事务由DAO层提升到service层来管理;它实际上是对于AOP思想的应用。我们只需要配置好平台事务管理器这一个“切面”就可以了;
spring中“平台事务管理接口”负责完成事务的提交和回滚;接口图解如下:
对于 JDBC和Mybatis可以对“DataSourceTransactionManager” 这个事务管理接口的实现类进行配置;
如下是配置JDBC事务管理
<!--注册平台事务管理器:切面/顾问-->
<bean id="txManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<!--引用自己配置的数据库-->
<property name="dataSource" ref="myDataSource"/>
</bean>
<!--注册事务通知-->
<tx:advice id="txAdvice" transaction-manager="txManager">
<!--指定连接点-->
<tx:attributes>
<!--可以设置事务隔离级别,和传播行为-->
<tx:method name="open*" isolation="DEFAULT" propagation="REQUIRED"/>
<!--添加异常回滚-->
<tx:method name="buy*" isolation="DEFAULT" propagation="REQUIRED" rollback-for="Exception"/>
</tx:attributes>
</tx:advice>
<!--aop配置-->
<aop:config>
<aop:advisor advice-ref="txAdvice" pointcut="execution(* *..service.*.*(..))"/>
</aop:config>
需要在配置文件中需要加上事务注解的驱动
<!--注册事务注解驱动-->
<tx:annotation-driven transaction-manager="txManager"/>
事务接口的定义需要在service的实现类中加上事务的注解
@Transactional(rollbackFor = Exception.class)
其他配置可以通过springDI进行注入;
spring事务管理相关Demo可到GitHub参考07和08
标签:except required pre tle ola advice 接口 drive 思想
原文地址:https://www.cnblogs.com/thegarden/p/11868477.html