AOP的理解笔记

AOP:面向切面:Aspect oriendted Programming
日志输出 事务控制 异常处理

AOP术语:
1 通知:(advice)
就是你想要的功能 也就是上面说的 安全 事务 日志等 先定义好 然后在使用的地方用一下
2 连接点:(JoinPoint)
就是spring允许你使用通知的地方 很多 基本每个方法的前 后(两者)都有 或者抛出异常时都可以是连接点 spring只支持方法连接点 其他如aspectJ还可以在构造器或者属性注入时使用 但是只要记住 和方法有关的前前后后(抛出异常) 都是连接点
3 切入点:(PointCut)
在上面说的连接点的基础上 来定义切入点. 一个类里有15个方法 那就有几十个连接点 但是你并不想在所有的方法附近都使用通知(使用叫织入 ) 你只想让其中的几个在调用这几个方法之前 之后 或者抛出异常干点什么 那么就用切入点来定义这个几个方法 让切点来筛选连接点 选择你想要的方法
切入点是一组一个或者多个连接点 在其中应该执行的通知. @PointCut("execution(* com.yibai.*.*(..))")
4 切面:(Aspect) @Aspect定义切面类需要这个注解
是通知和和切入点的结合 连接点是为了更好的理解切点搞出来的 明白概念即可.
通知说明了干什么和什么时候干(什么时候通过方法名的before after around等就能知道) 而切入点说明了在哪干(指定到底是那个方法) 这就是一个完整的切面定义.
5 引入:(introduction)
允许我们向现有的类添加新方法属性.这不就是把切面(也就是新方法属性:通知定义的)用到目标类中吗
6 目标:(target)
引入中所提到的类 也就是要被通知的对象 也就是真正的业务逻辑 他可以在毫不知情的情况下 被织入切面 而自己专注于业务本身的逻辑.
7 代理:(proxy)
怎么实现整套的AOP都是通过代理实现的
8 织入:(weaving)
把切面应用到目标对象来创建新的代理对象的过程.有三种方式 spring采用的是运行时 
关键就是:切点定义了那些连接点会得到通知

@Aspect 将类标记为包含通知方法的类
@PointCut 将函数标记为切入点
execution(expression) 涵盖应用通知方法的表达式

AOP 切点类:
这个可以使用自定义注解或者针对包名实现AOP的增强
A:实现对自定义注解的环绕增强切点 对使用了自定义注解的方法进行AOP切面处理
B:对方法的运行时间进行监控
C:对方法名 参数名 参数值 对日志描述的优化处理
在方法上加入@Aspect注解声明切面 使用@PointCut注解定义切点 标记方法
使用切点增加的时机注解:@Before @Around @After @AfterRunning @After @AfterThrowing 


 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值