码迷,mamicode.com
首页 > Web开发 > 详细

Other - 04 - AspectJ学习笔记 - 切点表达式

时间:2016-01-17 18:58:49      阅读:168      评论:0      收藏:0      [点我收藏+]

标签:

SourceAnalysis - 50 - Spring - AspectJ

    这篇的目的也比较直接,今天突然发现同事问到切点表达式发现自己还是不太熟悉 AspectJ 的切点表达式,只知道最简单的 execution 表达式,所以来整理一下一些切点表达式的使用方法,算是插入的一篇文章吧。

    首先对于一个切点 pointcut 来说,它分为两个核心部分,第一部分是 joinpoint,第二部分是 pointcut。而切点本身的作用是选择需要被横切的逻辑块,而 before / after 等是 advice 建议类型。

    Spring AOP 支持的 joinpoint 大致如下。

         execution:用于匹配方法执行的连接点;
         within:用于匹配指定类型内的方法执行;
         this:用于匹配当前AOP代理对象类型的执行方法;
         target:用于匹配当前目标对象类型的执行方法;
         args:用于匹配当前执行的方法传入的参数为指定类型的执行方法;
         @within:用于匹配所以持有指定注解类型内的方法;
         @target:用于匹配当前目标对象类型的执行方法,其中目标对象持有指定的注解;
         @args:用于匹配当前执行的方法传入的参数持有指定注解的执行;
         @annotation:用于匹配当前执行方法持有指定注解的方法;
         bean:Spring AOP扩展,用于匹配特定名称的Bean对象的执行方法;

    然后是 pointcut 可以通过 and(&&) or(||) not(!)组合,这也没什么好说的。

     通过这些 joinpoint 的组合可以达到意想不到的效果,以前通过 execution 注解指定然后再切面内进行过滤的方式也就可以过时了,最后给出源码。





Other - 04 - AspectJ学习笔记 - 切点表达式

标签:

原文地址:http://www.cnblogs.com/yaowu/p/5da538d1170a7594bae8fcbf3771d6ae.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!