Разница между DataBinder и ConversionService в Spring

Я испытываю некоторую путаницу в использовании и назначении Spring's 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 уже определен как часть аннотации-driven, и поэтому моя глобальная привязка данных игнорируется.

Итак, теперь я создал этот класс:

public class MyClassConverter implements Converter<String, MyClass>

Я запутался. Если я хочу использовать, должен ли я использовать службу преобразования, а не databinder?

5
задан jtoberon 8 February 2012 в 03:48
поделиться