사용자 도구

사이트 도구


springframework:mvc:handlermethodargumentresolver

Spring @MVC HandlerMethodArgumentResolver

구현

  • 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());
    // ....
}

MethodParameter

  • 지정된 파라미터에 대한 각종 정보와 어노테이션 등을 읽어올 수 있다.

ModelAndViewContainer

NativeWebRequest

  • NativeWebRequest : HttpServletRequest를 확보할 수 있다.
  • PathVariable 읽기
HttpServletRequest httpServletRequest = webRequest.getNativeRequest(HttpServletRequest.class);
Map<String,String> pathVariables = (Map<String, String>) httpServletRequest.getAttribute(HandlerMapping.URI_TEMPLATE_VARIABLES_ATTRIBUTE);
// pathVariables 맵에 정보가 저장 됨.

WebDataBinderFactory

springframework/mvc/handlermethodargumentresolver.txt · 마지막으로 수정됨: 2016/06/16 11:25 저자 kwon37xi