目录
1.spring事务管理
2.rollbackFor(异常回滚属性)
3.propagation(事物传播行为)
AOP基础
1.AOP概述
AOP快速入门
AOP核心概念
APO进阶
1.通知类型
2.通知顺序
3.切入点表达式
4.连接点
5.AOP案例
1.spring事务管理
spring的第二大核心:AOP(面向切面编程)
IOC是第一大核心:控制反转
//
2.rollbackFor(异常回滚属性)
默认出现运行时异常才会出现事物的回滚
3.propagation(事物传播行为)
//添加高亮显示
AOP基础
1.AOP概述
面向切面--面向特定方法的编程(面向一个或多个方法进行编程)
统计每一个业务方法的耗时:结束-开始
在不改动原始方法的基础上,针对原始方法进行编程(对原始方法的增强 或者改变功能)
定义在模版方法当中
和javaSE中的动态代理技术比较类似
AOP快速入门
@aspect--表是不是一个普通类--是一个AOP类
AOP功能强大 优势!!!!
AOP核心概念
可以被AOP控制--连接点 共性的抽取到方法当中--就叫做通知(抽取出来的重复的逻辑)
切入点:实际被AOP控制的方法
通知+切入点-----形成就是切面
被Aspect标识--就是切面类
通知所被应用到的对象---就是目标对象
APO进阶
1.通知类型
前置通知:在目标方法运行前被执行
after最终通知 后置通知
此时 重复的代码比较多---重复的代码可以复用抽取:
声明切入点表达式的注解:@PointCut
该切入点表达式不仅可以在该类当中使用 也可以在其他类下使用 如果为private 只能在当前类下使用--改为public
其他类下使用 如上图引用
2.通知顺序
aspect一旦注释 下面的通知都不会生效
各个通知生效的先后顺序取决于类名的字母排序
3.切入点表达式
所以说尽量不省略包名类名:容易匹配到多个 匹配的范围过大 性能降低
参数:任意类型 任意数量
注解:起到标识的作用
4.连接点
连接点--可以被AOP控制的方法
5.AOP案例
使用环绕通知:记录开始结束时间