Spring Framrwork
Spring Framwork의 RequetMapping 정보 추출하기
gregorio
2020. 3. 3. 08:39
Spring Framwork의 Controller에 정의되어 있는 모든 RequestMapping의 정보를 추출이 필요할 때가 있다.
이 경우 간단한 Controller를 생성하여 정보를 추출할 수 있다.
import java.util.ArrayList; import java.util.List; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Controller; import org.springframework.ui.Model; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.bind.annotation.ResponseBody; import org.springframework.web.servlet.mvc.method.RequestMappingInfo; import org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping; import com.lgcns.spring.base.BaseController; import com.lgcns.spring.base.BaseMap; @Controller public class RequestController extends BaseController{ @Autowired private RequestMappingHandlerMapping handlerMapping; @RequestMapping(value = "/endPoint.do", method=RequestMethod.POST) @ResponseBody public List getEndPoints(Model model) throws Exception { List result = new ArrayList(); for (RequestMappingInfo key : handlerMapping.getHandlerMethods().keySet()) { BaseMap map = new BaseMap(); map.put("name", key.getName()); map.put("path", key.getPatternsCondition()); map.put("methods", key.getMethodsCondition()); map.put("consumes", key.getConsumesCondition()); map.put("produces", key.getProducesCondition()); map.put("params", key.getParamsCondition()); map.put("headers", key.getHeadersCondition()); map.put("custom", key.getCustomCondition()); result.add(map); } return result; } } |
RequestMappingHandlerMapping를 이용하여 Mapping 정보를 추출한 후 Json형식으로 화면에 보여주고 있다.