2013-07-01 1 views
0

Мне нужно проверить XML-приходя от поставщика и сохранить его как тип XML в оракула ....Весна и JSR303

Теперь мне нужен процесс, чтобы вызвать проверки двигатель ... который собирается проверить его и сохранить значение в индикаторе как «ДА» или «НЕТ», если адрес в XML не существует в нашем дБ, делает указатель адреса «НЕТ» [который мы исправляем в другом процессе ...]

Я уже использовал JSR303 весной 303, который очень эффективен и прост в использовании .... но он использует объект поддержки формы и @valid .....

Могу ли я использовать его здесь в своем дизайне ..

Или позвольте мне поставить его таким образом -

Есть ли возможность для реализации Spring, JSR-303 для проверки объектов полей, которые не от формы ввода?

Я знаю его очень расплывчатый вопрос ... поэтому, пожалуйста, дайте мне знать, если мне нужно объяснить более

ответ

0

Большая часть работы для проверки объекта, выполняемого JSR-303 поставщика (гибернации-валидатор в большинстве случаев) , Роль Spring в этом процессе минимальна - он просто анализирует данные пользователя, связывает его с объектом и передает этот объект в валидатор. Кроме того, во время запуска приложения Spring создает экземпляр Validator.

Итак, вы можете вмешаться в этот процесс: создать объект, который будет проверен вручную, получить экземпляр Validator и передать ему объект. В результате вы получите Set из ConstraintViolation, который представляет ошибки каждого поля.

В этой схеме основная проблема заключается в том, что валидатор JSR-303 работает с объектом, в то время как вы работаете с XML-документом. Вы можете десериализовать XML-документ для объекта, проверить его и, если он не имеет ошибок, преобразовать его в XML и записать в БД.

Я рекомендую прочитать следующую часть Hibernate Validator инструкции: 2.2. Validating constraints Он описывает Validator интерфейс и несколько полезных методов: validate(), validateProperty() и validateValue().

Одним из преимуществ с весны здесь является то, что вам не нужно будет создавать Validator самих с Validation.buildDefaultValidatorFactory().getValidator(): просто @Autowire как и всей другой пружинной фасолью:

@Autowired 
private Validator validator; 
+0

... Спасибо еще один вопрос ... сделать вы думаете, что я должен использовать JSR здесь или использовать хорошую старую Spring Exception Handling ..... – AVI

+0

Это зависит от того, сколько у вас правил валидации. Если у вас есть несколько правил, лучше используйте простой механизм проверки. –