Я рассматриваю два варианта обработки параметров запроса/запроса:
- Сопоставить индивидуальные параметры с соответствующими параметрами метода:
@GET
public String blah(@QueryParam("testParam") String testParam) {
}
- Сопоставьте все параметры со свойствами Java bean:
@GET
public String blah(@BeanParam RequestParamBean bean) {
}
Второй вариант кажется более привлекательным, поскольку он позволяет перемещать и отделять логику проверки входных параметров запроса от метода blah
, основной задачей которого является обработка и делегирование валидации валидатору в случае высокой степени развязки ( а также принцип SOLID, верно?).
Однако большинство примеров, которые я вижу (фактически, существующий проект, над которым я работаю), используют только первый вариант. Мне интересно, есть ли причина, почему второй вариант широко не используется? Есть ли подводные камни? Это анти-шаблон? Это против какой-либо лучшей практики?