当前位置: 代码网 > it编程>编程语言>Java > spring boot切面execution表达式添加多个包路径问题及解决方案

spring boot切面execution表达式添加多个包路径问题及解决方案

2024年05月18日 Java 我要评论
问题描述在spring boot中,如果你想为多个包中的方法创建一个切面,你可以在@pointcut注解中使用||操作符来指定多个包。解决方案:// 定义切入点为两个包中的任意方法@pointcut(

问题描述

在spring boot中,如果你想为多个包中的方法创建一个切面,你可以在@pointcut注解中使用||操作符来指定多个包。

解决方案:

// 定义切入点为两个包中的任意方法
@pointcut("execution(* com.example.package1..*.*(..)) || execution(* com.example.package2..*.*(..))")
public void mypointcut() {
}

排除某个接口

// 定义切点,包括所有接口的方法,除了login接口
@pointcut("execution(* com.example.package1..*.*(..)) && !execution(* com.example.controller.testcontroller.login(..))")
public void mypointcut() {
}

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

  • execution(): 表达式主体,可以扫描控制层的接口、某个注解、或者其他需要扫描的类。
  • 第一个*号:表示返回类型,*号表示所有的类型,比如public,protect,private等。
  • 包名:表示需要拦截的包名,后面的两个句点表示当前包和当前包的所有子包,com.demo.service.impl包、子孙包下所有类的方法。
  • 第二个*号:表示子包名,*号表示所有子包。
  • 第三个*号:表示类名,*号表示所有子包下的类。
  • *(..):最后这个星号表示方法名,*号表示所有的方法,后面括弧里面表示方法的参数,两个句点表示任何参数。

到此这篇关于spring boot切面execution表达式添加多个包路径的文章就介绍到这了,更多相关spring boot切面execution表达式内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!

(0)

相关文章:

版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。

发表评论

验证码:
Copyright © 2017-2025  代码网 保留所有权利. 粤ICP备2024248653号
站长QQ:2386932994 | 联系邮箱:2386932994@qq.com