在 Java 中使用 AOP 获取请求方式是 GET 还是 POST,可以通过以下步骤实现:

  1. 创建一个切面类,用于处理请求方式的切面逻辑。
import org.aspectj.lang.JoinPoint;
import org.aspectj.lang.annotation.AfterReturning;
import org.aspectj.lang.annotation.Aspect;
import org.aspectj.lang.annotation.Before;
import org.aspectj.lang.annotation.Pointcut;
import org.springframework.stereotype.Component;
import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;

import javax.servlet.http.HttpServletRequest;

@Aspect
@Component
public class RequestMethodAspect {

    @Pointcut("execution(* com.example.controller.*.*(..)))")
    public void requestMethodPointcut() {}

    @Before("requestMethodPointcut()")
    public void before(JoinPoint joinPoint) {
        HttpServletRequest request = ((ServletRequestAttributes) RequestContextHolder.getRequestAttributes()).getRequest();
        String method = request.getMethod();
        System.out.println('Request Method: ' + method);
    }
}
  1. 在 Spring Boot 的配置类中启用 AOP,并将切面类添加到容器中。
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.EnableAspectJAutoProxy;

@SpringBootApplication
@EnableAspectJAutoProxy
public class Application {

    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

    @Bean
    public RequestMethodAspect requestMethodAspect() {
        return new RequestMethodAspect();
    }
}

这样,每次请求到达 Controller 方法之前,切面类的 before 方法会被调用,从中可以获取到请求的方法(GET 或 POST)并进行相应的处理。

Java AOP 获取 HTTP 请求方式 (GET/POST)

原文地址: https://www.cveoy.top/t/topic/qx32 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录