Spring RestController端点自动发现

时间:2016-01-23 18:00:10

标签: spring rest spring-web

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

1 个答案:

答案 0 :(得分:3)

所有处理程序映射的注册表都保存在requestMappingHandlerMapping bean中。您可以从Spring Boot Application的主要方法访问它。

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中。