何為事務: 一組數據邏輯操作,要么全成功,要么全失敗。
事務的四大特性:原子性 一致性 隔離性 持久性
Spring事務三個重要接口:
PlatformTransactionManager(提交回滾)
TransactionDefination(隔離 傳播 超時 只讀)
事務的隔離主要解決數據的臟讀 不可重復讀 虛讀
事務的傳播行為主要解決業務層方法相互調用時,事務如何傳遞的問題。
TransactionStatus(記錄事務的狀態)
上述三個接口有何關系:根據TransactionDefination定義的事務,PlatformTransaction進行管理,過程或結果產生的狀態信息記錄在TransacationStatus里。
Spring事務管理
1.編程式事務管理
示例:public void transfer(final String out, final String in, final Double money) {
transactionTemplate.execute(new TransactionCallbackWithoutResult() {
@Override
protected void doInTransactionWithoutResult(TransactionStatus arg0) {
// TODO Auto-generated method stub
accountDao.outMoney(out, money);
int i = 1/0;
accountDao.inMoney(in, money);
}
});
2.聲明式事務管理
(詳情查看spring_transaction這個工程)
a.基于TransactionProxyFactoryBean
b.基于AspectJ
3.基于注解