Spring boot 在执行请求时,如何获取在控制器层配置的当前请求映射URL?

Spring boot 在执行请求时,如何获取在控制器层配置的当前请求映射URL?,spring-boot,spring-rest,Spring Boot,Spring Rest,我浏览了很多链接,比如等等 我想在筛选器侦听器上获取请求映射URL 例如:这个URL是我在REST控制器方法中配置的,我们自然会传递/employees/employeenames/John来获取employeejohn /employees/employee-names/{employee_name} 现在,当有人点击/employees/employeenames/John时,如果REST控制器/employees/employeenames/{employeen_name},我想得到实际

我浏览了很多链接,比如等等

我想在筛选器侦听器上获取请求映射URL

例如:这个URL是我在REST控制器方法中配置的,我们自然会传递
/employees/employeenames/John
来获取employeejohn

/employees/employee-names/{employee_name}
现在,当有人点击
/employees/employeenames/John
时,如果REST控制器
/employees/employeenames/{employeen_name}
,我想得到实际映射url的值


有没有什么建议可以帮我解决这个问题?

我使用下面的代码解决了这个问题<代码>AntPathMatcher是确定传入请求和在属性文件中配置的URL是否完全匹配的最佳方法。这个解决方案对我非常有效

AntPathMatcher springMatcher = new AntPathMatcher();
Optional<String> antMatch = props.getMapping().stream()
     .filter(//Perform Some Filter as per need)
    .map(Mapping::getVersion)
    .findFirst();
return antMatch.isPresent() ? antMatch.get() : null;
AntPathMatcher-springMatcher=新AntPathMatcher();
可选的antMatch=props.getMapping().stream()
.filter(//根据需要执行一些筛选)
.map(映射::getVersion)
.findFirst();
返回antMatch.isPresent()?antMatch.get():null;

Spring MVC设置属性
HandlerMapping.BEST_MATCHING_PATTERN_属性
,您可以使用该属性获取用于匹配传入请求的模式:

String matchingPattern=(String)request.getAttribute(HandlerMapping.BEST_MATCHING_PATTERN_ATTRIBUTE)


在您的情况下,这将返回
/employees/employeen names/{employeen\u name}

请检查它,有没有办法获取控制器方法名称?这对我不起作用。最佳匹配模式为空me@PAA:可能在处理程序映射完成并设置此属性之前执行筛选器?你能用控制器代替过滤器吗?