springboot 创建手动事务
时间: 2023-12-08 08:39:14 浏览: 93
在Spring Boot中,我们可以使用注入的`PlatformTransactionManager`来手动创建事务。以下是一个简单的示例代码:
```java
import org.springframework.transaction.PlatformTransactionManager;
import org.springframework.transaction.TransactionDefinition;
import org.springframework.transaction.TransactionStatus;
import org.springframework.transaction.support.DefaultTransactionDefinition;
@Service
public class MyService {
@Resource
private PlatformTransactionManager platformTransactionManager;
public void myMethod() {
DefaultTransactionDefinition def = new DefaultTransactionDefinition();
def.setPropagationBehavior(TransactionDefinition.PROPAGATION_REQUIRED);
TransactionStatus status = platformTransactionManager.getTransaction(def);
try {
// 在这里执行需要进行事务管理的代码
// 如果代码执行成功,则提交事务
platformTransactionManager.commit(status);
} catch (Exception e) {
// 如果代码执行失败,则回滚事务
platformTransactionManager.rollback(status);
}
}
}
```
在上面的示例代码中,我们首先注入了`PlatformTransactionManager`,然后使用`DefaultTransactionDefinition`创建了一个事务配置对象。我们可以根据需要选择不同的事务传播行为,例如`PROPAGATION_REQUIRES_NEW`表示每次开启一个新的事务。接下来,我们使用`platformTransactionManager.getTransaction(def)`获取事务状态,并在`try`块中执行需要进行事务管理的代码。如果代码执行成功,则提交事务;如果代码执行失败,则回滚事务。
阅读全文