Spring AOP 切入点表达式

    1. 切入点指示符用来指示切入点表达式目的,,在Spring AOP中目前只有执行方法这一个连接点,Spring AOP支持的AspectJ切入点指示符如下:

               execution:用于匹配方法执行的连接点;

               within用于匹配指定类型内的方法执行;

               this用于匹配当前AOP代理对象类型的执行方法;注意是AOP代理对象的类型匹配,这样就可能包括引入接口也类型匹配;

               target用于匹配当前目标对象类型的执行方法;注意是目标对象的类型匹配,这样就不包括引入接口也类型匹配;

               args用于匹配当前执行的方法传入的参数为指定类型的执行方法;

               @within用于匹配所以持有指定注解类型内的方法;

               @target用于匹配当前目标对象类型的执行方法,其中目标对象持有指定的注解;

               @args用于匹配当前执行的方法传入的参数持有指定注解的执行;

               @annotation用于匹配当前执行方法持有指定注解的方法;

      切入点使用示例

             一、execution:使用“execution(方法表达式)”匹配方法执行;

       

      模式

      描述

      public * *(..)

      任何公共方法的执行

      * cn.javass..IPointcutService.*()

      cn.javass包及所有子包下IPointcutService接口中的任何无参方法

      * cn.javass..*.*(..)

      cn.javass包及所有子包下任何类的任何方法

      * cn.javass..IPointcutService.*(*)

      cn.javass包及所有子包下IPointcutService接口的任何只有一个参数方法

      * (!cn.javass..IPointcutService+).*(..)

      非“cn.javass包及所有子包下IPointcutService接口及子类型”的任何方法

      * cn.javass..IPointcutService+.*()

      cn.javass包及所有子包下IPointcutService接口及子类型的的任何无参方法

      * cn.javass..IPointcut*.test*(java.util.Date)

      cn.javass包及所有子包下IPointcut前缀类型的的以test开头的只有一个参数类型为java.util.Date的方法,注意该匹配是根据方法签名的参数类型进行匹配的,而不是根据执行时传入的参数类型决定的

      如定义方法:public void test(Object obj);即使执行时传入java.util.Date,也不会匹配的;

      * cn.javass..IPointcut*.test*(..)  throws

       IllegalArgumentException, ArrayIndexOutOfBoundsException

      cn.javass包及所有子包下IPointcut前缀类型的的任何方法,且抛出IllegalArgumentException和ArrayIndexOutOfBoundsException异常

      * (cn.javass..IPointcutService+

      && java.io.Serializable+).*(..)

      任何实现了cn.javass包及所有子包下IPointcutService接口和java.io.Serializable接口的类型的任何方法

    评论 2
    添加红包

    请填写红包祝福语或标题

    红包个数最小为10个

    红包金额最低5元

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

    抵扣说明:

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

    余额充值