如何使用带注释的事务顾问?

时间:2010-11-28 01:30:48

标签: spring interceptor transactionmanager

supose我有以下例子:

@Transactional(propagation=Propagation.SUPPORTS, readOnly=true)
public class MyServiceImpl implements MyService {

    ...

    @Transactional(propagation=Propagation.REQUIRED, readOnly=false)
    public TransactionResponse addMyEntity(MyEntity e) throws SQLException{
        ...
    }

    ...
}

在我的applicationContext中:

<tx:annotation-driven transaction-manager="txManager" />

好的,现在我想在抛出SQLException之后在事务回滚后添加一个拦截器。我怎么能这样做?

提前致谢

修改

我会试着澄清我想要做的事情:

我有一个WS,它在DB上保留一些信息并返回一个响应(如果出现错误,则返回isOk布尔值和errorMessage)

每当异常上升时,我都需要:

  • 回滚交易
  • 使用错误消息构建响应并将其返回给客户端。

这就像是关于spring的交易代理的尝试/捕获

1 个答案:

答案 0 :(得分:1)

使用order的{​​{1}}属性以及您将使用的拦截器。因此,您指定哪一个在另一个之前运行。请参阅AOP AspectJ advice ordering部分