Как принудительно отключить поддержку JSR-303 в Spring 3? - PullRequest
9 голосов
/ 08 декабря 2011

У меня есть некоторый устаревший код Spring MVC, смешанный с кодом gwt в том же артефакте (созданный с использованием maven), и я не могу заставить его работать. Требуется поставщик проверки во время выполнения, который мне не нужен (поскольку я не использую какие-либо аннотации проверки JSR-303) и не нужен в CP (это может конфликтовать с некоторыми контейнерами приложений, в которых этот артефакт будет развернут)

Как заставить Spring не выполнять проверки JSR-303 и избавиться от зависимости времени выполнения от поставщика проверки?

PS-артефакт имеет api validation-api в CP, поскольку GWT каким-то образом его использует

PPS Похоже, что удаление <mvc:annotation-driven/> из конфигурации Spring исправляет это. Привязка и классические проверки по-прежнему работают (у меня включено <context:annotation-config/>)

1 Ответ

7 голосов
/ 08 декабря 2011

Как вы уже обнаружили, <mvc:annotation-driven/> устанавливает множество функций, включая JSR-303.Эквивалент:

<bean class="org.springframework.web.servlet.mvc.annotation.DefaultAnnotationHandlerMapping">
    <property name="order" value="0" />
</bean>

<bean class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
    <property name="webBindingInitializer">
        <bean class="org.springframework.web.bind.support.ConfigurableWebBindingInitializer">
            <property name="validator" ref="validator" />
        </bean>
    </property>
    <property name="messageConverters">
        <list>
           <bean class="org.springframework.http.converter.ByteArrayHttpMessageConverter" />
           <bean class="org.springframework.http.converter.StringHttpMessageConverter" />
           <bean class="org.springframework.http.converter.FormHttpMessageConverter" />
           <bean class="org.springframework.http.converter.xml.SourceHttpMessageConverter" />
        </list>
    </property>
 </bean>

<bean id="validator" 
      class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean" />
<bean id="conversion-service" 
      class="org.springframework.format.support.FormattingConversionServiceFactoryBean" />

Таким образом, вы можете подставить тег в эту конфигурацию XML и удалить ненужные детали.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...