何为事务: 一组数据逻辑操作,要么全成功,要么全失败。
事务的四大特性:原子性 一致性 隔离性 持久性
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.基于注解
网友评论