spring aop 拦截指定注解的方法

spring aop 拦截指定注解的方法

我的目的:

使用 aop 拦截指定的某些方法,添加自己的业务逻辑处理。

我的效果就是:

	execution(@com.my.annotation.MyAnnotation * com.my..*(..)) 
	我的 aop 只拦截在某个包下的所有的带有自定义注解@com.my.annotation.MyAnnotation 的方法。

我想做的事情就:

  1. aop 拦截 controller 层:做幂等操作,在一定时间内,同一个 token 的请求只处理第一次,拒绝其他次。

  2. aop 拦截 service 层:还是与幂等操作相关,处理某个用户多次提交表单时的类似并发,也就是对某个用户的某份数据的修改是串行化的。第一次处理某个用户的数据未完成时,其他调用修改同一个用户的数据时就阻塞。例如用户的余额的改变。

我的难题

通常 aop 的这样的 execution(* com.my..controller.*.*(..)) 的写法,这就限定了类或者方法名称。而我要实现的是,只要某个方法打上自定义的注解之后,aop 只拦截有这个注解的方法。这样就可以不受限于类和方法名。

execution 表达式

	execution(<修饰符模式>?<返回类型模式><方法名模式>(<参数模式>)<异常模式>?)
	我只需要把 “<修饰符模式>” 写成我的注解即可。因为方法上的注解也是方法的修饰。
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值