AOP基础学习(二)
来源:互联网 发布:退火算法实例matlab 编辑:程序博客网 时间:2024/05/22 10:54
声明式事务管理
事务:保护原子性业务操作。保证这个操作一次完成,或者在出现故障时候回退。不能出现中间状态。
程序控制事务
try{ 开启事务 事务业务操作 事务业务操作 提交事务 }catch(Exception e){ 回滚事务 }finally{ 释放资源 }
Spring 利用 AOP 技术实现了 声明式事务处理。无需编程即可控制程序中的事务。只需要添加 事务注解即可!大大简化了事务程序开发。
使用声明式事务:
@Transaction public Object 业务方法(){ 业务过程 添加数据 删除数据 修改数据 }//基本规则:业务方法的整体看成一个事务,如果业务方法正常结束(没有异常),则业务完整提交。如果业务过程抛出任何异常,则业务过程整体回滚,回滚到业务方法运行之前的情况。//案例:public void deleteAll(id1,id2,id3,id4){ }//接口方法void deleteAll(String... noteId);@Transactionalvoid deleteAll(String... noteId){ noteId 就是数组}//变长参数就是数组,String... String[] 一样//变长参数只能用在最后一个参数,只能使用一次
声明事务特性
/* * 只读属性 */ @Transactional(readOnly = true) public List<String,Object>{ listNotebooks(String userId){ //... } }
事务的隔离
@Transactional(readOnly = true,isolation=Isolation.DEFAULT)
事务的隔离级别
1.isolation=Isolation.SERIALIZABLE 串行操作(一个接一个处理)不并发,数据安全性,一致性最高,性能最差(用户体验差。)
2.isolation= Isolation.REPEATABLE_READ 可重复读取,保证每次读取数据时一致的,性能不好。
3.isolation= Isolation.READ_COMMITED 可以读取已提交的数据,一般是默认级别,最常用的
4.isolation = Isolation.READ_UMCOMMITED 可以读取到没有提交的中间数据,不建议使用
一般情况下,都使用默认的隔离级别
事务的传播
/* * 业务重构! */删除用户功能 deleteUser(){ //--- 开始 deleteAll(id,id,id,id)//调用批量删除笔记事务 ``` //---提交 }批量删除笔记 deleteAll(id,id,id,id){ //---开始 完整事务 } //---提交
阅读全文
0 0
- AOP基础学习(二)
- Spring源码学习笔记(二)-AOP基础简介
- Spring AOP 基础(二)
- AOP基础学习(一)
- AOP学习笔记(二)——Spring AOP
- Spring 学习笔记 (二)--AOP
- Spring源码学习(二)------ AOP
- Spring源码学习(二)------ AOP
- Spring源码学习(二)------ AOP
- Spring学习笔记(二)AOP入门
- Spring源码学习(二)------ AOP
- Spring源码学习(二)------ AOP
- Spring源码学习(二)------ AOP
- 容器学习(二):动手模拟AOP
- Spring AOP学习(二)--AspectJ
- 【Spring AOP】学习记录(二)
- spring基础学习四(aop)
- 基础学习(二)
- hiho 最短的 Nore0061(思维)
- 原生JavaScript常用的DOM操作
- ArrayList的add(Object obj)和remove(Object obj)和remove(index)和get(index)的源码分析
- mysql配置用户权限
- 基于xgboost 的贷款风险预测
- AOP基础学习(二)
- 安卓系统工具类、开发的时候有用的到哦。
- JS循环语句
- Maven配置环境变量
- HDU 5522 Numbers(枚举 + 二分查找)
- Hello World.
- 《Angular2入门系列实践》——适应手机实现触屏滑动
- Java中Comparable和Comparator的用法
- 什么是编程?