mysqlcluster

博客园 首页 新随笔 联系 订阅 管理

在spring中一般使用声明式事务管理,在一些特殊情况下,比如业务方法中记录日志,业务方法失败了,但日志仍然要记录,如

method A{

    xxxLogService.log(“日志信息”);  //日志记录到数据库中

    mothod B

}

A方法可以使用spring的声明式事务进行管理,默认情况下,B出现异常时,日志信息也回滚了,不符合我们的要求。因此,可以在log方法上注解

 @Transactional(propagation=Propagation.REQUIRES_NEW) ,表示当log方法运行时,A方法的事务环境要挂起,在log中启用新事务,A方法事务的回滚不影响log方法的事务。

 

配置步骤如下:

在spring中使用注解事务,分为两步:

1、在spring的配置文件中applicationContext增加<tx:annotation-driven transaction-manager="transactionManager"/>

2、在需要新事务的方法上增加: @Transactional(propagation=Propagation.REQUIRES_NEW) ,本文中该注解写到log方法上。

posted on 2011-11-26 09:13  mysqlcluster  阅读(4166)  评论(0编辑  收藏  举报