Java Spring AOP:Making 建议只属于包中某些 类 的 PostMappings

Java Spring AOP:Making advice work for PostMappings that belong only to certain classes in a package

你好,我正在尝试使用 aop.At 将日志记录应用到我的应用程序,此时我可以使用此切入点将建议应用到应用程序的所有 PostMapping 方法。

    @Pointcut("@annotation(org.springframework.web.bind.annotation.PostMapping)")
    public void postAction() {

    }

这是建议

 @Before("postAction()")
    public void beforePost(JoinPoint joinPoint) {
        HttpServletRequest request = ((ServletRequestAttributes) Objects.requireNonNull(RequestContextHolder
                .getRequestAttributes())).getRequest();
        String name = request.getParameter("firstName");
        logger.info(name);
    }

我不希望 this.i 希望建议仅适用于处理用户对象的 PostMappings,我猜这是指处理 postmappings.In 这种情况下我的包结构的 3 个控制器是这个吗

src>main>java>com>example>myApp>controller>(the 3 classes i want are here:EmployeeController,StudentController,UserController)

我如何做这个切入点

  @Pointcut("@annotation(org.springframework.web.bind.annotation.PostMapping)")

只适用于上面的3个类?

结合几个pointcus怎么样;将这些添加到您现有的:

@Pointcut("within(com.example.myApp.controller.EmployeeController)")
public void employeeAction() {

}

@Pointcut("within(com.example.myApp.controller.StudentController)")
public void studentAction() {

}

@Pointcut("within(com.example.myApp.controller.UserController)")
public void userAction() {

}

那么,在您的建议中,您可以使用:

@Before("postAction() && (employeeAction() || studentAction() || userAction())")