Spring RestController 端点自动发现

Spring RestController endpoints autodiscovery

有没有办法获取在 @RestController 注释 class 中声明的所有端点的列表?有一些耐心可以通过反射来实现,但是有没有 Spring 内置的方法呢?想法是在服务登录页面上显示此列表。

所有处理程序映射的注册表保存在 requestMappingHandlerMapping bean 中。您可以像这样从 Spring 启动应用程序的主要方法访问它。

public static void main(String[] args) {
    ConfigurableApplicationContext context = 
            SpringApplication.run(MySpringApplication.class, args);

    AbstractHandlerMethodMapping requestMappingHandlerMapping = 
            context.getBean("requestMappingHandlerMapping", AbstractHandlerMethodMapping.class);
    Map handlerMethods = requestMappingHandlerMapping.getHandlerMethods();
    System.out.println("handlerMethods: " + handlerMethods);
}

或者只是将 bean 自动装配到您需要的 Spring 个 bean 中。