====== Spring @MVC WebArgumentResolver ====== * WebArgumentResolver는 Spring 3.0 까지만 사용하고, 3.1 이후는 [[springframework:mvc:handlermethodargumentresolver|Spring @MVC HandlerMethodArgumentResolver]] 사용할 것. * 컨트롤러의 파라미터로 받는 값을 중간에서 넣어주도록 하는 것이 가능하다. * [[http://karthikg.wordpress.com/2009/11/08/learn-to-customize-spring-mvc-controller-method-arguments/|Learn to customize Spring MVC @Controller method arguments]] * http://opensource-central.com/submitted-articles-extending-spring-mvc.php * [[http://cherrykyun.tistory.com/530|Cherrykyun 2.0 : [Spring 3.0.5] Custom WebArgumentResolver를 적용한 후 @ResponseBody를 적용한 Controller가 정상 동작하지 않음.]] * [[http://static.springsource.org/spring/docs/3.0.x/javadoc-api/org/springframework/web/bind/support/WebArgumentResolver.html|WebArgumentResolver]]를 구현한다. * 현재 Resolver가 처리할 파라미터가 아닌 경우 ''UNRESOLVED''를 리턴한다. ===== Spring 3.0 ===== * AnnotationMethodHandlerAdapter에 지정한다. * 단일일경우에는 ''customArgumentResolver''에 여러개일 경우에는 ''customArgumentResolvers''에 지정한다. * 주의 : AnnotationMethodHandlerAdapter에 기본 등록되는 Resolver들이 모두 초기화 되므로, 모든 기본 등록 Resolver를 직접 등록해줘야한다. * 주의 : AnnotationMethodHandlerAdapter와 ''''이 있을 때 배치 순서에 주의해야 한다.''''을 뒤로.(확인 필요) * 코드 ===== Spring 3.1 이상 ===== * Spring 3.1에서 WebArgumentResolver를 사용하면 예외가 모두 무시당하는 현상이 발생한다.[[http://blog.naver.com/PostView.nhn?blogId=clotho95&logNo=140144711547|참조]] * 따라서 3.1 이상에서는 [[springframework:mvc:handlermethodargumentresolver|Spring @MVC HandlerMethodArgumentResolver]]를 사용하도록 한다. * 3.0에서 발생하는 기본 Resolver 초기화 문제가 발생하지 않는다. * ''''로 직접 등록