如何在Spring 3中强制禁用JSR-303支持?

时间:2011-12-08 03:27:42

标签: java spring spring-mvc

我有一些遗留的Spring MVC代码与gwt代码混合在同一个工件中(使用maven构建),我无法让它运行。它需要运行时的验证提供程序,我不需要(因为我没有使用任何JSR-303验证注释)并且不想要CP(它可能与某些应用程序容器冲突,这些工件将部署在其中)

如何强制spring不进行任何JSR-303验证并摆脱运行时对验证提供程序的依赖?

由于GWT以某种方式使用它,PS工件在CP中具有validation-api

PPS 似乎从Spring配置中删除<mvc:annotation-driven/>修复此问题。 绑定和经典验证仍然有效(我启用了<context:annotation-config/>

1 个答案:

答案 0 :(得分:7)

正如您已经发现的那样,<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配置并删除不需要的部分。