编程语言
首页 > 编程语言> > java – Spring中DataBinder和ConversionService之间的区别

java – Spring中DataBinder和ConversionService之间的区别

作者:互联网

关于将Web请求绑定到模型对象,我在使用Spring的DataBinder和ConversionService的使用和目的时遇到了一些困惑.出现这种情况是因为我最近尝试通过添加来使用JSR-303验证.

在此之前我用过:

<bean
    class="org.springframework.web.servlet.mvc.annotation.AnnotationMethodHandlerAdapter">
    <property name="webBindingInitializer">
        <bean class="mypackage.GlobalWebBindingInitializer" />
    </property>
</bean>

这很好,因为我想要一个可供多个控制器使用的全局DataBinder.
在GlobalWebBindingInitialzer类中实现以下几个:

binder.registerCustomEditor(MyClass.class, new PropertyEditorSupport(MyClass.class)

但是我想使用@Valid注释并添加.这样做的副作用是上面的AnnotationMethodHandlerAdapter bean已经被定义为注释驱动的一部分,因此忽略了我的全局数据绑定器.

所以现在我创建了这个类:

public class MyClassConverter implements Converter<String, MyClass>

我很迷惑.如果我想使用我应该使用转换服务而不是数据仓?

解决方法:

历史上,Spring的数据绑定用于将数据转换为javabeans.它在很大程度上依赖于JavaBean PropertyEditors来进行转换.

Spring 3.0 added new and different support用于转换和格式化.一些更改包括“core.convert”包和“格式”包,根据文档“可以用作PropertyEditors的简单替代品”.

现在,回答你的问题,是的,看起来你走在了正确的轨道上.您可以继续使用其中任何一种,但在很多情况下,您应该能够使用转换器而不是数据绑定器.

有关如何添加验证is available online的文档.

标签:java,spring,bean-validation,validation,databinder
来源: https://codeday.me/bug/20190521/1146576.html