SpringMVC 手动控制事务提交

1、在需要加事务的方法上加上


DataSourceTransactionManager transactionManager = (DataSourceTransactionManager) ctx
.getBean("txManager");
DefaultTransactionDefinition def = new DefaultTransactionDefinition();
def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW); // 事物隔离级别,开启新事务,这样会比较安全些。
TransactionStatus status = transactionManager.getTransaction(def); // 获得事务状态

try {
//逻辑代码,可以写上你的逻辑处理代码
transactionManager.commit(status);
} catch (Exception e) {
transactionManager.rollback(status);
}

这是在有 ApplicationContext 的情况下、

2. ApplicationContext 不存在的情况下


    

    @Autowired

    private DataSourceTransactionManager txManager;  // 在某一个类的开始进行注入


    // 下面的这些内容需要写在方法当中用于手动添加事务
    DefaultTransactionDefinition def = new DefaultTransactionDefinition();

    def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW);// 事物隔离级别,开启新事务

    TransactionStatus status = txManager.getTransaction(def); // 获得事务状态

    try{
        //逻辑代码,可以写上你的逻辑处理代码
        txManager.commit(status);
    }catch(Exception e){
        txManager.rollback(status);
    }

猜你喜欢

转载自blog.csdn.net/qq_36826506/article/details/82112925