package com.epkj.spring; import java.util.Iterator; import java.util.Map; import javax.servlet.ServletContext; import javax.servlet.http.HttpServletRequest; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.context.WebApplicationContext; import org.springframework.web.context.support.WebApplicationContextUtils; import org.springframework.web.method.HandlerMethod; import org.springframework.web.servlet.mvc.method.RequestMappingInfo; import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping; @Controller @RequestMapping("/ControllerReflect.do") public class ControllerReflect { @ResponseBody @RequestMapping(params="method=getUrlMapping") public Object getUrlMapping(HttpServletRequest request) { WebApplicationContext wc = getWebApplicationContext(request.getSession().getServletContext()); RequestMappingHandlerMapping rmhp = wc.getBean(RequestMappingHandlerMapping.class); Map<RequestMappingInfo, HandlerMethod> map = rmhp.getHandlerMethods(); for (Iterator<RequestMappingInfo> iterator = map.keySet().iterator(); iterator .hasNext();) { RequestMappingInfo info = iterator.next(); System.out.print(info.getConsumesCondition()); System.out.print(info.getCustomCondition()); System.out.print(info.getHeadersCondition()); System.out.print(info.getMethodsCondition()); System.out.print(info.getParamsCondition()); System.out.print(info.getPatternsCondition()); System.out.print(info.getProducesCondition()); System.out.print("==="); HandlerMethod method = map.get(info); System.out.print(method.getMethod().getName() + "--"); System.out.print(method.getMethodAnnotation(RequestMapping.class).params()[0]); System.out.println(); } return null; } @RequestMapping(params="method=hello") public Object hello() { return null; } public WebApplicationContext getWebApplicationContext(ServletContext sc) { return WebApplicationContextUtils.getRequiredWebApplicationContext(sc); } }
Spring 反射得到所有controller与method
猜你喜欢
转载自183615215-qq-com.iteye.com/blog/1866281
今日推荐
周排行