java - 不同包中特定方法的切入点表达式

标签 java aop aspectj spring-aop

我在 @ 中尝试了针对特定包的切入点表达式,例如 com.abc.def.controllercom.abc.def.service.serviceImpl 等围绕建议为:

@Around("execution(* com.abc.def.controller..*.*(..))")
@Around("execution(* com.abc.def.service.*Impl.*(..))")

我还需要匹配不同包中的方法,例如 com.abc.xyz.controllercom.abc.xyz.service.serviceImpl 并尝试了很多切入点表达式,但是没有用。

任何帮助将不胜感激。 :)

最佳答案

这个怎么样?

@Around("execution(* com.abc..controller..*(..))")
@Around("execution(* com.abc..service.*Impl.*(..))")

您也可以像这样同时匹配两者:

@Around(
    "execution(* com.abc..controller..*(..)) || " + 
    "execution(* com.abc..service.*Impl.*(..))"
)

其他变体也是可能的,具体取决于您想要实现的目标。欢迎提出相关的后续问题。

关于java - 不同包中特定方法的切入点表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41689828/

相关文章:

java - 亚像素图像渲染

java - 使用 Java Cloudant API 存储 map

c# - 自定义属性在编译时执行

java - AOP拦截器拦截同一JVM中的所有应用程序

java - 具有类名模式的切入点

java - Spring AOP 在 Spring Boot 2.1.6 应用程序中没有被调用

java - 带有文件返回的 Ajax 发布

java - Spring - java.lang.IllegalArgumentException

java - JoinPoint 或 ProceedingJoinPoint 的对象为什么可以调用方法?

java - 防止并发回调代码运行两次