获取SpringMVC中所有RequestMapping映射URL地址

废话不多说,直接上代码:
public String init(HttpServletRequest request, HttpServletResponse response){
	List uList = new ArrayList();//存储所有url集合
	WebApplicationContext wac = (WebApplicationContext) request.getAttribute(DispatcherServlet.WEB_APPLICATION_CONTEXT_ATTRIBUTE);//获取上下文对象
	RequestMappingHandlerMapping bean = wac.getBean(RequestMappingHandlerMapping.class);//通过上下文对象获取RequestMappingHandlerMapping实例对象
	Map handlerMethods = bean.getHandlerMethods();
	for (RequestMappingInfo rmi : handlerMethods.keySet()) {
		PatternsRequestCondition prc = rmi.getPatternsCondition();
		Set patterns = prc.getPatterns();
		for (String uStr : patterns) {
			uList.add(uStr);
		}
	}
}
通过以上代码即可获取SpringMVC映射地址及其其他方法相关属性。

万变不离其宗,亦或是通过以下方式获取。
public void init(HttpServletRequest request,HttpServletResponse response) {
	List uList = new ArrayList();//存储所有url集合  
	WebApplicationContext wac = (WebApplicationContext) request.getAttribute(DispatcherServlet.WEB_APPLICATION_CONTEXT_ATTRIBUTE);//获取上下文对象
	Map requestMappings = BeanFactoryUtils.beansOfTypeIncludingAncestors(wac, HandlerMapping.class, true, false);
	for(HandlerMapping handlerMapping : requestMappings.values()) {
		if(handlerMapping instanceof RequestMappingHandlerMapping) {
			RequestMappingHandlerMapping rmhm = (RequestMappingHandlerMapping) handlerMapping;
			Map handlerMethods = rmhm.getHandlerMethods();
			for(RequestMappingInfo rmi : handlerMethods.keySet()) {
				PatternsRequestCondition prc = rmi.getPatternsCondition();
				Set patterns = prc.getPatterns();
				for (String uStr : patterns)
					uList.add(uStr);
			}
		}
	}
}

你可能感兴趣的:(Java基础,Java框架)