Aspectj @Before 有效,但 @Pointcut 无效
Aspectj @Before works but @Pointcut does not
我在 spring 引导应用程序中有一个 aspectj 实现的简单示例,我正在尝试让每个不同的方法都起作用。
如果我使用下面的
@Before("execution(* com.example.test.controllers.ProductController.deleteProduct(..))")
public void specificInterception() {
System.out.println("pointcut interception working");
}
这工作正常,我可以看到 println
的控制台输出
但是,如果我使用
@Pointcut("execution(* com.example.test.controllers.ProductController.deleteProduct(..))")
public void specificInterception() {
System.out.println("pointcut interception working");
}
触发失败。为什么这不起作用?
用 @Pointcut
注释的方法本身不执行任何操作。它只允许您多次重复使用相同的表达式,而不必重新声明它。我什至不确定这样的方法的方法体是否会被调用
在您的情况下,您可以像这样使用切入点:
@Pointcut("execution(* com.example.test.controllers.ProductController.deleteProduct(..))")
public void specificPointcut() {}
@Before("specificPointcut()")
public void specificInterception() {
System.out.println("pointcut interception working");
}
我在 spring 引导应用程序中有一个 aspectj 实现的简单示例,我正在尝试让每个不同的方法都起作用。
如果我使用下面的
@Before("execution(* com.example.test.controllers.ProductController.deleteProduct(..))")
public void specificInterception() {
System.out.println("pointcut interception working");
}
这工作正常,我可以看到 println
但是,如果我使用
@Pointcut("execution(* com.example.test.controllers.ProductController.deleteProduct(..))")
public void specificInterception() {
System.out.println("pointcut interception working");
}
触发失败。为什么这不起作用?
用 @Pointcut
注释的方法本身不执行任何操作。它只允许您多次重复使用相同的表达式,而不必重新声明它。我什至不确定这样的方法的方法体是否会被调用
在您的情况下,您可以像这样使用切入点:
@Pointcut("execution(* com.example.test.controllers.ProductController.deleteProduct(..))")
public void specificPointcut() {}
@Before("specificPointcut()")
public void specificInterception() {
System.out.println("pointcut interception working");
}