代码语言:javascript复制
/** TransactionAspectSupport手动回滚事务:*/
@Transactional(rollbackFor = { Exception.class })
public boolean test() {
try {
doDbSomeThing();
} catch (Exception e) {
e.printStackTrace();
//使用TransactionAspectSupport确保出现异常以后,事务能回滚
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
return false;
}
return true;
}
- 编程式事务:就是直接在代码里手动开启事务,手动提交,手动回滚。优点就是可以灵活控制,缺点就是太麻烦了,太多重复的代码了。
- 声明式事务:就是使用SpringAop配置事务,这种方式大大的简化了编码。需要注意的是切入点表达式一定要写正确。
- 注解事务:直接在Service层的方法上面加上@Transactional注解。