public boolean supportsParameter(MethodParameter parameter)
: Resolver가 해당 파라미터에 적용 가능한지 여부를 검사하여 true/false 리턴Object resolveArgument(MethodParameter parameter, ModelAndViewContainer mavContainer, NativeWebRequest webRequest, WebDataBinderFactory binderFactory) throws Exception
: 파라미터 인자와 기타 정보등을 통해서 실제 객체를 생성하여 리턴하면 해당 객체가 컨트롤러 메소드의 인자로 들어가게 된다.<mvc:annotation-driven> <mvc:argument-resolvers> <bean class="kr.pe.kwonnam.someproject.LoginUserHandlerMethodArgumentResolver"/> <!--일반 Bean 주입 --> </mvc:argument-resolvers> </mvc:annotation-driven>
혹은 java-config에서
@Override protected void addArgumentResolvers(List<HandlerMethodArgumentResolver> argumentResolvers) { super.addArgumentResolvers(argumentResolvers); argumentResolvers.add(myArgumentResolver()); // .... }
HttpServletRequest httpServletRequest = webRequest.getNativeRequest(HttpServletRequest.class); Map<String,String> pathVariables = (Map<String, String>) httpServletRequest.getAttribute(HandlerMapping.URI_TEMPLATE_VARIABLES_ATTRIBUTE); // pathVariables 맵에 정보가 저장 됨.