spring mvc 获取所有的controller中的url
新增ControllerReflect
原理:
从WebApplicationContext中获取RequestMappingHandlerMapping.class类型的所有bean.
代码如下:
在web.xml中增加:
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:spring.xml</param-value>
</context-param>
<listener>
<listener-class> org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>新增ControllerReflect
@Controller
@RequestMapping("/controllerReflect")
public class ControllerReflect {
@ResponseBody
@RequestMapping("getUrlMapping")
public Object getUrlMapping(HttpServletRequest request) {
WebApplicationContext wc = WebApplicationContextUtils.getRequiredWebApplicationContext(request.getSession().getServletContext());
RequestMappingHandlerMapping rmhp = wc.getBean(RequestMappingHandlerMapping.class);
Map<RequestMappingInfo, HandlerMethod> map = rmhp.getHandlerMethods();
for(RequestMappingInfo info : map.keySet()){
System.out.println(info.getPatternsCondition().toString()
+ ","
+map.get(info).getBean().toString());
}
return null;
}
}
本文介绍如何在SpringMVC应用中通过反射获取所有控制器的URL映射信息。主要步骤包括:配置ContextLoaderListener监听器,使用RequestMappingHandlerMapping获取映射信息并打印。
1027

被折叠的 条评论
为什么被折叠?



