달력

52024  이전 다음

  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17
  • 18
  • 19
  • 20
  • 21
  • 22
  • 23
  • 24
  • 25
  • 26
  • 27
  • 28
  • 29
  • 30
  • 31
최근 Spring MVC를 사용하면서 가장 주요하게 사용하는 기능은 두가지입니다.
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>

@ 바꾼설정
<!-- 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>

편리하긴 하나, mvc:annotation-driven 를 제거하고 webBindingInitializer에 validator 를 수동으로 지정했습니다.
그러니 잘 돌아가네요.





Posted by fromm0
|