[Spring] mvc:annotation-driven과 AnnotationMethodHandlerAdapter의 CustomArgumentResolvers
자바 2011. 2. 7. 14:24최근 Spring MVC를 사용하면서 가장 주요하게 사용하는 기능은 두가지입니다.
1. Bean Validation
2. Custom ArgumentResolvers
Bean Validation 의 경우 Spring 3.0 에서 mvc:annotation-driven 을 통해 간단하게 사용할 수 있습니다.
하지만 Custom ArgumentResolvers 를 사용하기 위해 AnnotationMethodHandlerAdapter 를 사용하게 되는 경우 빈 등록 과정에서 중복으로 등록되는 어려움이 발생합니다.
@ 이전설정
@ 바꾼설정
편리하긴 하나, mvc:annotation-driven 를 제거하고 webBindingInitializer에 validator 를 수동으로 지정했습니다.
그러니 잘 돌아가네요.
1. Bean Validation
2. Custom ArgumentResolvers
Bean Validation 의 경우 Spring 3.0 에서 mvc:annotation-driven 을 통해 간단하게 사용할 수 있습니다.
하지만 Custom ArgumentResolvers 를 사용하기 위해 AnnotationMethodHandlerAdapter 를 사용하게 되는 경우 빈 등록 과정에서 중복으로 등록되는 어려움이 발생합니다.
@ 이전설정
<!-- @Controllers의 Formatting, Validation, Conversion -->
<mvc:annotation-driven />
<!-- Controller의 파라미터 처리자(WebArgumentResolver) -->
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="customArgumentResolvers">
<list>
<bean class="openframework.common.utils.GukArgumentResolver" />
</list>
</property>
</bean>
<mvc:annotation-driven />
<!-- Controller의 파라미터 처리자(WebArgumentResolver) -->
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="customArgumentResolvers">
<list>
<bean class="openframework.common.utils.GukArgumentResolver" />
</list>
</property>
</bean>
@ 바꾼설정
<!-- Controller의 파라미터 처리자(WebArgumentResolver) -->
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="customArgumentResolvers">
<list>
<bean class="openframework.common.utils.GukArgumentResolver" />
</list>
</property>
<property name="webBindingInitializer">
<bean class="org.springframework.web.bind.support.ConfigurableWebBindingInitializer">
<property name="validator">
<bean class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean" />
</property>
</bean>
</property>
</bean>
<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
<property name="customArgumentResolvers">
<list>
<bean class="openframework.common.utils.GukArgumentResolver" />
</list>
</property>
<property name="webBindingInitializer">
<bean class="org.springframework.web.bind.support.ConfigurableWebBindingInitializer">
<property name="validator">
<bean class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean" />
</property>
</bean>
</property>
</bean>
편리하긴 하나, mvc:annotation-driven 를 제거하고 webBindingInitializer에 validator 를 수동으로 지정했습니다.
그러니 잘 돌아가네요.
'자바' 카테고리의 다른 글
[Spring oxm] XStreamMarshaller 를 사용하여 XML을 Java 객체로 변환하기 (0) | 2011.04.30 |
---|---|
[maven] javadoc 생성 (0) | 2011.02.15 |
[Spring] Spring AOP를 통한 선언적인 트랜잭션 관리가 제대로 작동하지 않는 경우 (1) | 2011.02.01 |
[성능] 모델셋팅 및 리플렉션 처리.. (0) | 2011.01.07 |
[성능][업데이트] 로깅 API 성능 테스트(log4j, slf4j 등) (7) | 2010.12.30 |