You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Spring Boot如何记录多路径GET接口的实际访问URL?

如何记录Spring接口实际访问的路径(多映射场景)

针对你定义的多路径映射接口,有两种常用方式获取并记录实际访问的路径:

方法一:直接注入HttpServletRequest到方法参数

在接口方法中添加HttpServletRequest参数,调用其getRequestURI()方法即可获取实际访问的路径:

@GetMapping(value = {"/foo", "/bar"})
public String myFunction(HttpServletRequest request) {
    String actualPath = request.getRequestURI();
    // 记录实际访问路径
    System.out.println("实际访问路径:" + actualPath);
    // 后续业务逻辑
    return "success";
}

getRequestURI()会返回请求的完整路径(如/foo或/bar),适用于大多数常规场景。

方法二:通过RequestContextHolder获取请求上下文

如果不想在方法参数中添加HttpServletRequest,可以借助Spring的RequestContextHolder获取当前请求上下文,进而拿到请求对象:

import org.springframework.web.context.request.RequestContextHolder;
import org.springframework.web.context.request.ServletRequestAttributes;
import javax.servlet.http.HttpServletRequest;

@GetMapping(value = {"/foo", "/bar"})
public String myFunction() {
    ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
    if (attributes != null) {
        HttpServletRequest request = attributes.getRequest();
        String actualPath = request.getRequestURI();
        // 记录实际访问路径
        System.out.println("实际访问路径:" + actualPath);
    }
    // 后续业务逻辑
    return "success";
}

注意:此方式需确保当前线程为请求处理线程,否则getRequestAttributes()可能返回null,适合需要在工具类或非控制器方法中获取路径的场景。

内容的提问来源于stack exchange,提问作者Mankind1023

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 08:15:43