Java AOP 获取 HTTP 请求方式 (GET/POST)
在 Java 中使用 AOP 获取请求方式是 GET 还是 POST,可以通过以下步骤实现:
- 创建一个切面类,用于处理请求方式的切面逻辑。
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);
}
}
- 在 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)并进行相应的处理。
原文地址: https://www.cveoy.top/t/topic/qx32 著作权归作者所有。请勿转载和采集!