Springプログラミングトランザクションの実装方法
Springではプログラマチックトランザクションでトランザクション管理を行えます。その手順は以下の通りです。
- データソーストランザクションマネージャ
<bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSource"/>
</bean>
- トランザクショナル
@Transactional
public void doTransaction() {
// 事务操作
}
- 手動でトランザクションの開始と終了を制御する。
@Autowired
private TransactionTemplate transactionTemplate;
public void doTransaction() {
transactionTemplate.execute(new TransactionCallbackWithoutResult() {
protected void doInTransactionWithoutResult(TransactionStatus status) {
// 事务操作
}
});
}
- トランザクションのコミットやロールバックを制御
@Autowired
private PlatformTransactionManager transactionManager;
public void doTransaction() {
DefaultTransactionDefinition def = new DefaultTransactionDefinition();
TransactionStatus status = transactionManager.getTransaction(def);
try {
// 事务操作
transactionManager.commit(status);
} catch (RuntimeException e) {
transactionManager.rollback(status);
throw e;
}
}
処理系トランザクションを実現する一般的な方法は上記の通りであり、自身のニーズに合ったやり方を選択してトランザクション管理を行ってください。