如何获取Spring事务管理器实例?

Rom*_*man 3 java spring transactions spring-transactions spring-3

我使用注释来标记应该在事务中执行的方法.

但是,在一个地方我需要transactionManager.rollback()手动完成,没有注释.我怎样才能获得transactionManager对象?

axt*_*avt 12

如果要回滚当前事务,可以使用

    TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
Run Code Online (Sandbox Code Playgroud)

请注意,它不会立即回滚事务 - 它设置"仅回滚"状态,因此在尝试提交期间将回滚事务.


否则,如果您需要程序化事务去除,您可以使用TransactionTemplate,如10.6程序化事务管理中所述.

您也可以获得一个实例PlatformTransactionManager,但它没有被广泛使用,因为这TransactionTemplate是一种推荐的程序化事务处理解除方法.

也可以看看: