spring boot切面execution表达式添加多个包路径

问题描述

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


解决方案:

java 复制代码
// 定义切入点为两个包中的任意方法
@Pointcut("execution(* com.example.package1..*.*(..)) || execution(* com.example.package2..*.*(..))")
public void myPointcut() {
}

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

  1. execution(): 表达式主体,可以扫描控制层的接口、某个注解、或者其他需要扫描的类。
  2. 第一个*号:表示返回类型,*号表示所有的类型,比如public,protect,private等。
  3. 包名:表示需要拦截的包名,后面的两个句点表示当前包和当前包的所有子包,com.demo.service.impl包、子孙包下所有类的方法。
  4. 第二个*号:表示子包名,*号表示所有子包。
  5. 第三个*号:表示类名,*号表示所有子包下的类。
  6. *(..):最后这个星号表示方法名,*号表示所有的方法,后面括弧里面表示方法的参数,两个句点表示任何参数。
相关推荐
vipxieliang4 小时前
ValidX vs Apache Commons Validator:功能与性能对比
java·spring boot
吃饱了得干活4 小时前
一篇讲清楚Spring Boot:自动装配、启动器、过滤器、拦截器、设计模式
java·spring boot·后端
jay神15 小时前
【计算机毕业设计】基于SpringBoot的程序教学辅助系统
java·前端·vue.js·spring boot·后端·毕业设计·课程设计
谢亮_vipxieliang20 小时前
ValidX分组验证详解:不同场景使用不同验证规则
java·spring boot·后端·spring cloud·eclipse·hibernate
凤山老林20 小时前
Spring Boot 集成 Spring Vault:集中式密钥管理与动态凭证轮换
spring boot·后端·spring·vault·集中式秘钥管理
2601_9620711720 小时前
八. Spring Boot2 整合连接 Redis(超详细剖析)
spring boot·redis·后端
钱栈up1 天前
VSCode 调试多模块 Maven + Spring Boot 后端:从启动失败到一次跑通
java·spring boot·maven
2601_962189601 天前
【SpringBoot】使用IDEA创建SpringBoot项目
java·spring boot·intellij-idea
步行cgn1 天前
Spring Boot 启动报错:MissingServletWebServerFactoryBean 的排查与解决
java·spring boot·后端
步行cgn1 天前
Spring Boot 项目打包部署详解
java·spring boot·后端