HandlerMethod 怎么获取方法名
时间: 2023-05-27 20:01:14 浏览: 222
可以通过HandlerMethod类的getMethodName()方法获取方法名。具体的代码如下:
```
@Autowire
private RequestMappingHandlerMapping handlerMapping;
public String getMethodName(String url, String method) {
Map<RequestMappingInfo, HandlerMethod> handlerMethods = handlerMapping.getHandlerMethods();
for (Map.Entry<RequestMappingInfo, HandlerMethod> entry : handlerMethods.entrySet()) {
RequestMappingInfo key = entry.getKey();
HandlerMethod value = entry.getValue();
Set<RequestMethod> requestMethods = key.getMethodsCondition().getMethods();
if (key.getPatternsCondition().getPatterns().contains(url)
&& requestMethods.contains(RequestMethod.valueOf(method))) {
return value.getMethod().getName();
}
}
return null;
}
```
其中,handlerMapping是由Spring自动注入的RequestMappingHandlerMapping类的实例。可以利用该类的getHandlerMethods()方法获取所有的HandlerMethod实例。然后可以根据url和method参数,遍历所有的HandlerMethod实例,找到对应的处理方法,并返回其方法名。
阅读全文