Java 在spring控制器中获取请求路径

Java 在spring控制器中获取请求路径,java,spring,spring-boot,Java,Spring,Spring Boot,如何在spring应用程序中的HTTP映射方法中获得匹配的请求路径?在下面的示例中,我希望matchedPath变量具有值/api/products/{product\u id}/comments,它是@RequestMapping和@PostMapping值的组合 @RestController @请求映射(“/api”) 公开课范例{ @后期映射(“/products/{product_id}/comments”) 公共响应属性doSomething(@PathVariable(“产品id”

如何在spring应用程序中的HTTP映射方法中获得匹配的请求路径?在下面的示例中,我希望
matchedPath
变量具有值
/api/products/{product\u id}/comments
,它是
@RequestMapping
@PostMapping
值的组合

@RestController
@请求映射(“/api”)
公开课范例{
@后期映射(“/products/{product_id}/comments”)
公共响应属性doSomething(@PathVariable(“产品id”)字符串id){
//字符串matchedPath=getPath();
返回ResponseEntity.ok().build();
}
}

我发现通过
HandlerMapping
属性之一
BEST\u MATCHING\u PATTERN\u ATTRIBUTE

import javax.servlet.http.HttpServletRequest;
@RestController
@请求映射(“/api”)
公开课范例{
@后期映射(“/products/{product_id}/comments”)
公共响应属性doSomething(HttpServletRequest-req,@PathVariable(“产品id”)字符串id){
String matchedPath=String.valueOf(req.getAttribute(HandlerMapping.BEST_MATCHING_PATTERN_ATTRIBUTE));
返回ResponseEntity.ok().build();
}
}

如果我的问题看起来很傻,那就抱歉了。但是为什么不手动添加路径呢。地址将是静态的。您通过字符串“id”获得产品标识。为什么不合并它们?您可以尝试使用
HandlerMapping.BEST\u MATCHING\u PATTERN\u属性
?您具体想对路径做什么?添加
UriComponentsBuilder
参数通常是最佳选择。