【web】Spring中使用DataSourceTransactionManager手动提交或回滚事务

【web】Spring中使用DataSourceTransactionManager手动提交或回滚事务

在使用spring进行web开发时,虽然spring提供的注解方式可以方便的处理很多原来需要手动提交或回滚的事务,但是注解方式有自己使用的局限,比如在类的内部调用方法时,注解方式处理的事务就无法被触发,此时可能需要手动处理相关数据库的事务。本文记录在spring开发时使用Spring提供的DataSourceTransactionManager进行事务提交或回滚处理。主要步骤如下:

1、注入DataSourceTransactionManager

在java对象中注入DataSourceTransactionManager对象,如使用如下注解方式注入:

@Autowired// @Qualifier("transactionManager")private DataSourceTransactionManager transactionManager;
DataSourceTransactionManager的创建就不在这里描述了;

2、事务处理

手动开启事务,捕获异常,手动提交或回滚事务,示例代码如下:

public void updateDatabase(CertificateRegisteRequest request,final CertificateRegisteResponse response) {DefaultTransactionDefinition def = new DefaultTransactionDefinition();def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);TransactionStatus status = transactionManager.getTransaction(def); // gettry {if (logger.isDebugEnabled()) {logger.debug("request=" + request.toString());logger.debug("response=" + response.toString());}//do some things.//.............................................// commit.transactionManager.commit(status);} catch (Exception e) {transactionManager.rollback(status);}}

免责声明:本网信息来自于互联网,目的在于传递更多信息,并不代表本网赞同其观点。其原创性以及文中陈述文字和内容未经本站证实,对本文以及其中全部或者部分内容、文字的真实性、完整性、及时性本站不作任何保证或承诺,并请自行核实相关内容。本站不承担此类作品侵权行为的直接责任及连带责任。如若本网有任何内容侵犯您的权益,请及时联系我们,本站将会在24小时内处理完毕。
相关文章
返回顶部