2017-02-15 4 views
0

Я изучаю Spring framework, и я смущен ситуацией, когда следует использовать Interceptor и когда использовать Validator. Hibernate и JSR предоставляют множество аннотаций проверки, так что использование перехватчика. Предположим, мы хотим проверить, пустое поле или нет, то, что рекомендуется для JSR-аннотации или перехватчика.Зачем использовать Interceptor или Filters, когда у нас есть Validator

Я просто хочу знать, когда следует выбирать перехватчики над валидаторами.

+0

С помощью перехватчика, вы имеете в виду что-то вроде «HandlerInterceptorAdapter» у весны или вы говорите о перехватчиках Hibernate? – Naros

+0

Spring Interceptors –

ответ

0

Перехватчик и проверка являются отдельными концепциями, которые могут или не могут работать вместе. Они не являются исключительными или противоречивыми.

Фильтр и перехватчики - это конструкции, которые хорошо подходят для сквозных задач и многоразового кода, который не имеет прямого отношения к бизнес-логике. Валидация - одна из таких проблем, но это также регистрация, аудит, безопасность.

Фильтры и перехватчики также сосредоточены вокруг жизненного цикла методов обработчиков сервлетов или пружинных регуляторов, к которым относится логика, выполняемая до или после.

Валидация не имеет этого аспекта, как правило, вы проверяете перед обработчиком, но с учетом определенного контекста вы можете решить иначе.


Относительно комментария Нароса. Как он упомянул. Основной целью спецификации валидации является содействие повторному использованию логики проверки, поскольку это та озабоченность, которая обычно связана и выполняется в разных уровнях.

Так, как сказано, отдельные концепции, направленные на различные проблемы.

+0

Я бы сказал, что это важно не только для проверки перед обработчиком, но и для уровня обслуживания/бизнес-уровня или уровня стойкости. Это особенно важно, когда вы делитесь своим постоянством или кодом уровня обслуживания между несколькими проектами, в которых другие проекты не основаны на веб-интерфейсах. – Naros