Spring学习---(3)切入点表达式语法

本文详细介绍了AOP中常用的切入点表达式及语法,并通过多个示例代码展示了如何使用这些表达式来精确地定义需要切面操作的目标方法。

写在前面:

    这篇博客中,将会总结一些AOP中常用的切入点表达式及语法。


示例代码1
<aop:pointcut expression="execution(modifiers-pattern? ret-type-pattern declaring-type-pattern? name-pattern(param-pattern) " id=""/>
    这行代码中,

    (1)modifiers-pattern代表访问修饰符,*则表示拦截任意访问权限---(可选字段)

    (2)ret-type-pattern代表返回值,*则表示拦截任意返回值类型的---(必选字段)

    (3)declaring-type-pattern,代表匹配的路径,即包+类---(可选字段)

    (4)name-pattern,表示类中的方法,*则表示拦截当前的所有方法---(必选字段)

    (5)param-pattern表示方法参数,(..)表示任意参数,(.)表示一个参数 ,(*,String)表示第一个参数为任意,第二个为String类型---(必选字段)

      (6)   throws-pattern,表示异常匹配类型---(可选字段)

      (7)   id则维护一个pointcut标记

      (8)   ?是正则表达式中的0和1,表示0个或者1个

示例代码2:
<aop:pointcut expression="execution(public * *(..))" id="pt2" />

表示:拦截所有访问权限为public的方法

示例代码3:
<aop:pointcut expression="execution(* save*(..))" id="pt3" />

表示:拦截所有名称为save的方法

示例代码4:
<aop:pointcut expression="execution(* aopdemo2..*.*(..))" id="pt4" />

表示:拦截指定包下,及其子包的所有方法

示例代码5:
<aop:pointcut expression="execution(* aopdemo2.UserDao.save()) || execution(* aopdemo2.StudentDao.save())" id="pt5" />
<aop:pointcut expression="execution(* aopdemo2.UserDao.save()) or execution(* aopdemo2.StudentDao.save())" id="pt6" />

表示:拦截aopdemo2包下UserDao或StudentDao的save方法

示例代码6:
<aop:pointcut expression="!execution(* aopdemo2.UserDao.save(..))" id="pt7" />
<aop:pointcut expression=" not execution(* aopdemo2.UserDao.save(..))" id="pt8" />
表示:取非 不拦截apodemo2包下UserDao的save方法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值