spring boot手动提交事务

spring boot手动提交事务

import org.springframework.jdbc.datasource.DataSourceTransactionManager;
import org.springframework.transaction.TransactionDefinition;
import org.springframework.transaction.TransactionStatus;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.support.DefaultTransactionDefinition;

@Autowired
private DataSourceTransactionManager txManager;

/**
 * 测试事务
 */
private void testTransaction() {
	DefaultTransactionDefinition def = new DefaultTransactionDefinition();
	def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRES_NEW);
	TransactionStatus status = txManager.getTransaction(def);
	try {
		system.out.println("处理正常业务")
		txManager.commit(status);
	} catch (Exception e) {
		LOGGER.error("testTransaction fail:{}",e);
		txManager.rollback(status);
	}
}

手动提交事务的运用场景:异步处理业务时,此时业务的事务已经脱离正常的aop机制了,所以需要手动提交事务,来保持业务中多个事务的一致性。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章