Разница между аннотациями @Valid и @Validated в Spring Boot заключается в их происхождении, функциях и поддержке группировки ограничений: habr.com
- Происхождение:
- @Valid — стандартная аннотация из спецификации Java Bean Validation (JSR-303). habr.com Не специфична для Spring и может использоваться в любом Java-приложении. habr.com
- @Validated — специфическая для Spring аннотация, предоставляемая самим Spring. habr.com
- Функция:
- @Valid используется для проверки объекта метода или параметра в методе. habr.com Зачастую применяется, когда объект получен в HTTP-запросе и нужно проверить его поля. habr.com
- @Validated используется для проверки параметров метода на Spring-бине. habr.com Обычно применяется, когда метод компонента Spring имеет параметры, которые должны проходить валидацию. habr.com
- Группировка:
- @Valid не поддерживает группировку ограничений. habr.com blog.stark.work
- @Validated, в отличие от @Valid, поддерживает группировку ограничений. habr.com Это полезно, когда для одного и того же объекта при разных обстоятельствах требуются разные группы проверок. habr.com
Таким образом, @Valid применяется, когда нужно проверить внутреннее состояние объектов, а @Validated необходима для активации проверок на уровне параметров методов и поддержки более сложных сценариев валидации. struchkov.dev