spring3 버전에서 mvc interceptors 사용



스프링3 버전에서 mvc 인터셉터를 쓰려면 에러가 난다.





이게 스프링4 버전에서부터 바뀐 부분인데 


결론부터 말하자면


인터셉터를 선언하기 전에

 <mvc:annotation-driven/> 를 먼저 선언해주면 해결된다.



@MVC의 기반 클래스 변경

  • 3.1 부터 MVC기반 클래스 변경
    • <mvc:annotation-driven/>에 의해 등록되는 클래스들
    • HandlerMapping : DefaultAnnotationHandlerMapping -> RequestMappingHandlerMapping
    • HandlerAdaptor : AnnotationMethodHandlerAdapter -> RequestMappingHandlerAdapter
    • HandlerExceptionResolver : AnnotationMethodHandlerExceptionResolver -> ExceptionHandlerExceptionResolver
    • 이름을 보면
      • 'Annotation'은 이제 당연하므로 생략.
      • @RequestMapping이 연상되도록
  • Handler를 클래스가 단위가 아닌 메소드 단위로
  • <mvc:annotation-driven/>를 쓸 때 옛날 클래스와 같이 쓰지 않도록 주의

    <mvc:annotation-driven/>
    <bean id="handlerAdapter"
        class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
        <property name="customArgumentResolvers">
           <array>
                 <bean class="net.benelog.UserArgumentResolver"/>
           </array>
        </property><property name="order" value="-1"/>
    </bean>
    

->

        <mvc:annotation-driven>
            <mvc:argument-resolvers>
                    <bean class="net.benelog.UserArgumentResolver"/>
            </mvc:argument-resolvers>
        </mvc:annotation-driven>



+ Recent posts