【问题标题】:Getting method name related to a rest service获取与休息服务相关的方法名称
【发布时间】:2018-01-22 00:52:34
【问题描述】:

我想知道是否存在一种方法来检索与所提供的休息服务相关联的实际方法名称。假设我的 url 是 http://localhost:8080/v1/mytesturl 现在我想检索与该 url 关联的实际方法名称。

实际上,我们正在维护一些特定于我们创建的方法的键/值对,我需要根据使用这些值执行的方法名称进行一些检查。

请让我知道是否有办法做到这一点..

【问题讨论】:

    标签: rest spring-boot


    【解决方案1】:

    只需从Object 类中获取方法名。

    @RestController
    @RequestMapping("")
    public class HomeController {
    
        @RequestMapping("/mytesturl")
        @ResponseBody        
        public String getMethodName() {
            return new Object(){}.getClass().getEnclosingMethod().getName();
        }
    
    }
    

    【讨论】:

    • 谢谢,但不在同一个方法或类中。基本上我想要的是我们用rest创建了多个服务,我想编写一个过滤器,该过滤器需要映射到提供的url的方法的名称,以读取以方法名称为键的映射。
    • @satishdikku 您可以使用反射 API 的 Class 类来获取给定类的所有方法。
    【解决方案2】:

    我通过这个得到了解决方案

    Map<RequestMappingInfo, HandlerMethod> handlerMethods = RequestMappingHandlerMapping.getHandlerMethods(); HandlerExecutionChain handler = RequestMappingHandlerMapping.getHandler(requestr); HandlerMethod handler1 = null; if(Objects.nonNull(handler)){ handler1 = (HandlerMethod) handler.getHandler(); handler1.getMethod().getName() }

    这为我提供了我想要的东西..

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-06-08
      • 2020-10-10
      • 2012-06-28
      • 1970-01-01
      • 2012-02-29
      • 2014-02-16
      相关资源
      最近更新 更多