Spring Mvc获取所有注册URL

废话不多说,直接上代码,以下两种方式获取SpringMVC中注册的URL。

@Controller
public class UrlsController {
    // 方法 1
    @ResponseBody
    @RequestMapping("/urls1")
    public Object getUrlMapping(HttpServletRequest request) {
        WebApplicationContext wc = RequestContextUtils.getWebApplicationContext(request);
        RequestMappingHandlerMapping rmhp = wc.getBean(RequestMappingHandlerMapping.class);
        Map<RequestMappingInfo, HandlerMethod> map = rmhp.getHandlerMethods();
        List<String> urls = new ArrayList<>(map.size());
        for (RequestMappingInfo info : map.keySet()) {
            System.out.println(info.getPatternsCondition().toString() + "," + map.get(info).getBean().toString());
            urls.add(info.getPatternsCondition().toString());
        }
        return urls;
    }

    // 方法 2
    @Autowired
    private RequestMappingHandlerMapping handlerMapping;

    @ResponseBody
    @RequestMapping("/urls2")
    public Object index(Long id, HttpServletRequest request, HttpServletResponse response)
            throws IOException, ClassNotFoundException {
        Map<RequestMappingInfo, HandlerMethod> map = this.handlerMapping.getHandlerMethods();
        List<String> urls = new ArrayList<>(map.size());
        for(Map.Entry<RequestMappingInfo, HandlerMethod> entry  : map.entrySet()) {
            System.out.println(entry.getKey() + System.lineSeparator() + entry.getValue());
            urls.add(entry.getKey().toString());
        }
        return urls;
    }
}

对了注意不能Response返回RequestMappingInfo, HandlerMethod对象,否则会报错。其他web.xml以及springmvc的配置都需要加上。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 135,828评论 19 139
  • 1.Spring web mvc介绍 Spring web mvc和Struts2都属于表现层的框架,它是Spri...
    七弦桐语阅读 13,981评论 2 38
  • Spring mvc 框架 DispatcherServlet前端控制器 ---- 整个流程控制的中心,由它调用其...
    蕊er阅读 3,987评论 0 0
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 175,955评论 25 709
  • 什么样的人生活在什么样的世界。你是个好人,这个世界就对你好一点,你是个坏人,这个世界就对你坏一点......这个概...
    许小胖来了阅读 1,540评论 0 1

友情链接更多精彩内容