미니옵빠의 code stubs

Spring 3.1 에서 Interceptor 내 전달되는 Object handler 타입 확인 본문

Framework/Spring

Spring 3.1 에서 Interceptor 내 전달되는 Object handler 타입 확인

미니옵빠 2014. 3. 17. 11:42

Spring 3.1 부터는 Interceptor 내 전달되는 Object handler 의 타입이 해당 인스턴스의 타입이 아니라 HandlerMethod instance 로 전달됨


그래서 prehandle 내


if (handler instanceof XXXAware) {

}


와 같이 기존 3.0 까지에서 전달된 객체의 타입을 비교하던 구문은 정상 동작하지 않고

해당 부분은 HandlerMethod 로 캐스팅 후 getBean() 으로 객체를 얻어 타입을 비교하도록 수정해야 한다.


참고:

http://docs.spring.io/spring/docs/3.1.x/spring-framework-reference/html/mvc.html#mvc-handlermapping-interceptor

http://stackoverflow.com/questions/8545204/how-to-set-objects-on-spring-3-1-mvc-controller-from-an-interceptor