aop中execution 表达式

                                                     execution 表达式

学习Spring中的aop组装切面时遇到的execution表达式,下面是execution表达式的详解

 

切入点表达式:

整个表达式可以分为五个部分:

1、execution(): 表达式主体。

2、第一个*号:方法返回类型, *号表示所有的类型。

3、包名:表示需要拦截的包名。

4、第二个*号:表示类名,*号表示所有的类。

5、*(..):最后这个星号表示方法名,*号表示所有的方法,后面( )里面表示方法的参数,两个句点表示任何参数

 

  execution(* 包名.*.*(..))

    规范写法:execution(* com.baizhi.service.UserServiceImpl.*(..))重点    最通用的        //执行接口下的所有接口方法

      

===========================================================================================

    

    书写接口实现方法:UserServiceImpl     

    方法类型:add();   query();    add(String name);   add(User user);  add(String name,Integer age);

    

    execution(* service.UserServiceImpl.add(..))        //执行add()方法

    

    execution(* service.UserServiceImpl.add(String))    //执行add(String name)方法

    

    execution(* service.UserServiceImpl.add(com.baizhi.entity.User))    //执行add(User user)方法

    

    execution(* service.UserServiceImpl.add(String , Integer))    //执行add(String name,Interger age)方法

    

    execution表达式的一般用法:

    execution(* service.UserServiceImpl.*(java.util.List))

    返回值:任意

    包:com.baizhi.service

    类:UserServiceImpl

    方法:任意

    参数:必须是List集合

    

    execution(* service.UserServiceImpl.add*(..))  重点

    返回值:任意

    包:com.baizhi.service

    类:UserServiceImpl

    方法:以add关键字开头的方法

    参数:任意

    

    execution(* service.UserServiceImpl.*.*(..))  重点

    返回值:任意

    包:com.baizhi.service

    类:当前包下的所有类

    方法:所有类中的所有方法

    参数:任意

    

 

    execution(* service..*.*(..))  重点

    返回值:任意

    包:service包以及它下面所有子包

    类:所有包中的所有类

    方法:所有类中的所有方法

    参数:任意

   

    execution(* *(..))   重点   不建议这样写    栈溢出

    

    注意:

        要尽可能精准的切入

    

    

  • 5
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值