采用junit test方式

1.配置  simple-test.xml 

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="requestMappingHandlerMapping" class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"></bean>
<bean id="requestMappingHandlerAdapter" class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter"></bean>
</beans>

 

 

2.Junit Test Case

package com.xxx.msa.test;

import java.util.Map;
import java.util.Map.Entry;
import org.junit.BeforeClass;
import org.junit.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import org.springframework.web.method.HandlerMethod;
import org.springframework.web.servlet.mvc.method.RequestMappingInfo;
import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter;
import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping; public class TestUrl { @Autowired
private static RequestMappingHandlerAdapter handlerAdapter; @Autowired
private static RequestMappingHandlerMapping handlerMapping; @BeforeClass
public static void before(){
ApplicationContext ctx=new ClassPathXmlApplicationContext(new String[]{
"classpath*:config/spring/spring-main.xml",
"classpath*:config/spring/springmvc/springMVC.xml"
,"classpath*:config/spring/simple-test.xml"});
handlerAdapter=(RequestMappingHandlerAdapter) ctx.getBean("requestMappingHandlerAdapter");
handlerMapping=(RequestMappingHandlerMapping) ctx.getBean("requestMappingHandlerMapping");
} @Test
public void testUrls(){
Map<RequestMappingInfo, HandlerMethod> handlerMethods =handlerMapping
.getHandlerMethods(); for (Entry<RequestMappingInfo, HandlerMethod> item : handlerMethods
.entrySet()) {
RequestMappingInfo mapping = item.getKey();
HandlerMethod method = item.getValue(); for (String urlPattern : mapping.getPatternsCondition()
.getPatterns()) {
System.out.println(method.getBeanType().getName() + "#"
+ method.getMethod().getName() + " <-- " + urlPattern); if (urlPattern.equals("some specific url")) {
// add to list of matching METHODS
}
}
} } }

 

 

 

3.结果

 

 

 

4.延伸: 打印出符合markdown语法的表格

改写testUrl()

@Test
public void testUrls(){
System.out.println("------------以下文本复制到符合markdown语法的编辑器中------------\r\r"); Map<RequestMappingInfo, HandlerMethod> handlerMethods =handlerMapping
.getHandlerMethods();
StringBuilder sb=new StringBuilder();
sb.append("[MSA系统][1]").append("\r\n");
sb.append("| 序号 | 类名 | 方法名 | URI |说明|").append("\r\n");
sb.append("| :-----:|:----|:----|:----| :----|").append("\r\n");
int index=1;
for (Entry<RequestMappingInfo, HandlerMethod> item : handlerMethods
.entrySet()) {
RequestMappingInfo mapping = item.getKey();
HandlerMethod method = item.getValue();
sb.append("| ");
for (String urlPattern : mapping.getPatternsCondition().getPatterns()) {
sb.append(index+" |").append(method.getBeanType().getSimpleName()+" |").append(method.getMethod().getName()+" |").append(urlPattern+" |"); if (urlPattern.equals("some specific url")) {
// add to list of matching METHODS
}
index++;
}
sb.append("|\r\n");
}
sb.append("![MSA测量系统][2]").append("\r\n\r\n");
sb.append("[1]:http://baike.baidu.com/link?url=xTbrqN9R1f3b1nayzmLNlWRIV7qP3qg3g50ig14g68kPXIrcrgymGzniaR8Ay7g9kzLkYgPeUcHR_YxgTMESHa").append("\r\n");
sb.append("[2]:http:////img12.360buyimg.com/n0/jfs/t703/314/1199846466/213652/541cad01/5527d639N36f38009.jpg").append("\r\n");
System.out.println(sb); }

markdown语法表格效果

[MSA系统][1]
| 序号 | 类名 | 方法名 | URI |说明|
| :-----:|:----|:----|:----| :----|
| 1 |GageCheckRecordController |create |/GageCheckRecord/create ||
| 2 |GageCheckRecordController |update |/GageCheckRecord/update ||
| 3 |GageCheckRecordController |gageCheckRecordIndex |/GageCheckRecord/list ||
| 4 |GageCheckRecordController |gageCheckRecordExport |/GageCheckRecord/export ||
| 5 |GageController |delete |/Gage/delete/{gageId} ||
| 6 |GageController |CheckConfigUpate |/Gage/CheckConfig/update ||
| 7 |GageController |CheckConfigSwitch |/Gage/CheckConfigSwitch/update ||
| 8 |GageController |gageNew |/Gage/create ||
| 9 |GageController |gageUpdate |/Gage/update ||
| 10 |GageController |findByGageId |/Gage/{gageId} ||
| 11 |GageController |gageLeftList |/Gage/list ||
| 12 |GageController |gageIndex |/Gage/index ||
| 13 |GageController |gageCheckRecordExport |/Gage/export ||
| 14 |GrrAnalysisController |create |/GrrAnalysis/create ||
| 15 |GrrAnalysisController |list |/GrrAnalysis/list ||
| 16 |GrrAnalysisController |getResult |/GrrAnalysis/getResult ||
| 17 |GrrAnalysisController |getInput |/GrrAnalysis/getData ||
| 18 |GrrAnalysisController |saveData |/GrrAnalysis/saveData ||
| 19 |GrrAnalysisController |compute |/GrrAnalysis/compute ||
| 20 |GrrTemplateController |index |/GrrTemplate/index ||
| 21 |GrrTemplateController |createGrrTemplate |/GrrTemplate/create ||
| 22 |GrrTemplateController |deleteGrrTemplate |/GrrTemplate/delete ||
| 23 |GrrTemplateController |getGrrTemplate |/GrrTemplate/get ||
| 24 |IndexController |totest |/test ||
| 25 |IndexController |toindex |/toindex ||
| 26 |LoginController |currentCompanyAccount |/Login/currentCompanyAccount ||
| 27 |LoginController |login |/Login/login ||
| 28 |LoginController |toLogin |/Login/tologin ||
| 29 |LoginController |logout |/Login/logout ||
![MSA测量系统][2] [1]:http://baike.baidu.com/link?url=xTbrqN9R1f3b1nayzmLNlWRIV7qP3qg3g50ig14g68kPXIrcrgymGzniaR8Ay7g9kzLkYgPeUcHR_YxgTMESHa
[2]:http:////img12.360buyimg.com/n0/jfs/t703/314/1199846466/213652/541cad01/5527d639N36f38009.jpg

 

可以把这些东西记录在 有道云笔记中,也可以放在github中

打印 SpringMVC中所有的接口URL的更多相关文章

  1. 获取SpringMVC中所有RequestMapping映射URL信息

    SpringMVC启动的时候,会把接口信息收集在RequestMappingHandlerMapping中,故可以通过这个类,拿到全部的映射信息,Sample代码段如下: @Autowired pri ...

  2. 在springmvc中,获取Connection接口

    ServletContext context = request.getSession().getServletContext();WebApplicationContext wac = WebApp ...

  3. SpringMVC中url映射到Controller

    SpringMVC也是一种基于请求驱动的WEB框架,并且使用了前端控制器的设计模式.前端控制器就是DispatcherServlet控制器,只要满足web.xml文件中的[url-pattern]的规 ...

  4. 如何在SpringMVC中使用REST风格的url

    如何在SpringMVC中使用REST风格的url 1.url写法: get:/restUrl/{id} post:/restUrl delete:/restUrl/{id} put:/restUrl ...

  5. SpringMVC 中的Interceptor 拦截器

    1.配置拦截器 在springMVC.xml配置文件增加: <mvc:interceptors>  <!-- 日志拦截器 -->  <mvc:interceptor> ...

  6. SpringMVC中@Controller和@RequestMapping用法和其他常用注解

    一.简介 在SpringMVC 中,控制器Controller 负责处理由DispatcherServlet 分发的请求,它把用户请求的数据经过业务处理层处理之后封装成一个Model ,然后再把该Mo ...

  7. 【SpringMVC学习11】SpringMVC中的拦截器

    Springmvc的处理器拦截器类似于Servlet 开发中的过滤器Filter,用于对处理器进行预处理和后处理.本文主要总结一下springmvc中拦截器是如何定义的,以及测试拦截器的执行情况和使用 ...

  8. (转)SpringMVC学习(十二)——SpringMVC中的拦截器

    http://blog.csdn.net/yerenyuan_pku/article/details/72567761 SpringMVC的处理器拦截器类似于Servlet开发中的过滤器Filter, ...

  9. (转)SpringMVC学习(八)——SpringMVC中的异常处理器

    http://blog.csdn.net/yerenyuan_pku/article/details/72511891 SpringMVC在处理请求过程中出现异常信息交由异常处理器进行处理,自定义异常 ...

随机推荐

  1. left join on

    问题: select * from A left join  f on e.cust=f.account_id where f.status='0' 与 select * from A left jo ...

  2. Node.js 入门手册:那些最流行的 Web 开发框架

    这篇文章与大家分享最流行的 Node.js Web 开发框架.Node 是一个服务器端 JavaScript 解释器,它将改变服务器应该如何工作的概念.它的目标是帮助程序员构建高度可伸缩的应用程序,编 ...

  3. SQL Server里因丢失索引造成的死锁

    在今天的文章里我想演示下SQL Server里在表上丢失索引如何引起死锁(deadlock)的.为了准备测试场景,下列代码会创建2个表,然后2个表都插入4条记录. -- Create a table ...

  4. 对象Transform,对属性赋值

    private void ContructRequest(Dictionary<string, string> dictionary, CustomerSearchRequest requ ...

  5. SQL Server 诊断查询-(3)

    Query #27 Database Properties    -- Recovery model, log reuse wait description, log file size, log u ...

  6. 图片轮播(左右切换)--JS原生和jQuery实现

    图片轮播(左右切换)--js原生和jquery实现 左右切换的做法基本步骤跟 上一篇文章  淡入淡出 类似,只不过修改了一些特定的部分 (1)首先是页面的结构部分 对于我这种左右切换式 1.首先是个外 ...

  7. c++转C#

    //c++:HANDLE(void   *)          ----    c#:System.IntPtr        //c++:Byte(unsigned   char)     ---- ...

  8. WinForm输入网址打开源码

    无聊练习一下WinForm,输入网址,点击按钮就在浏览器打开网址. 源代码下载: http://hovertree.com/h/bjaf/cao15h74.htm

  9. document.documentElement.clientWidth

    document.documentElement.clientWidth 摘自:http://blog.sina.com.cn/s/blog_6f1f9ead0100n1f6.html 关于获取各种浏 ...

  10. 重新想象 Windows 8 Store Apps (57) - 本地化和全球化

    [源码下载] 重新想象 Windows 8 Store Apps (57) - 本地化和全球化 作者:webabcd 介绍重新想象 Windows 8 Store Apps 之 本地化和全球化 本地化 ...