Spring AOP中定义切点的详细介绍

AOP的切点定义大部分的人都知道excecution()其实在AOP中有很多关旭切点的参数,用好可这些参数可以让我们的工作事半功倍,

一.excecution()

关于excecution必须要介绍的就是怎么写这个括号里面的内容了.

execution(modifiers-pattern? ret-type-pattern declaring-type-pattern? name-pattern(param-pattern)throws-pattern?)

这是他的表达式内容 

modifiers-pattern? 表示的是修饰符 其中?代表可以省略
ret-type-pattern 方法的返回参数	
declaring-type-pattern? 表示方法所在的类的访问路径
name-pattern(param-pattern) :表示的是方法名
throws-pattern? : 表示的是异常
二.bean()

Bean的使用相对来说是比较简单的 bean()括号里面放的是你在Spring中注册的类的标识也就是当我们使用@Component@Service@Controller@Respository中的value的值

三.within()

within()但是within()和execution()函数不同的是,within()所指定的连接点最小范围只能是类,而execution()所指定的连接点可以大到包,小到方法入参。 所以从某种意义上讲,execution()函数功能涵盖了within()函数的功能

注意.当括号里面的是一个接口的时候他会去拦截实现了该接口的所有类.

四.@within和@target

@within()和@target()括号里面可以放注解的全类名指定实现该注解的类进行拦截

五.@args

@args()括号里面也放注解只不过它是对方法参数有该注解的进行拦截

六.args()

agrs()括号里面放方法的参数类型

七.在切点表达式中还可以使用&& || !这三种符号用来完成对切点的定义

excecution(* *.*(..))  || bean('deviceService')
在设置通知的时候也是可以利用 && || 设置多个切点的

@Pointcut("@within(cn.gouliao.ares.annotation.controller.ControllerAround)")
 public void setJoinPoint() {
 }
 @Pointcut("@annotation(cn.gouliao.ares.annotation.controller.ControllerAround)")
 public void setPoint(){

 }

 @Around(value = "setJoinPoint()||setPoint()")

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值