Package org.springframework.validation.annotation

# Annotation Interface Validated

@Target({TYPE,METHOD,PARAMETER}) @Retention(RUNTIME) @Documented public @interface Validated
Variant of JSR-303's `Valid`, supporting the specification of validation groups. Designed for convenient use with Spring's JSR-303 support but not JSR-303 specific.

Can be used, for example, with Spring MVC handler methods arguments. Supported through `SmartValidator`'s validation hint concept, with validation group classes acting as hint objects.

Can also be used with method level validation, indicating that a specific class is supposed to be validated at the method level (acting as a pointcut for the corresponding validation interceptor), but also optionally specifying the validation groups for method-level validation in the annotated class. Applying this annotation at the method level allows for overriding the validation groups for a specific method but does not serve as a pointcut; a class-level annotation is nevertheless necessary to trigger method validation for a specific bean to begin with. Can also be used as a meta-annotation on a custom stereotype annotation or a custom group-specific validated annotation.

Since:
  3.1
Author:
  Juergen Hoeller
See Also:
  - `Validator.validate(Object, Class[])`
  - `SmartValidator.validate(Object, org.springframework.validation.Errors, Object...)`
  - `SpringValidatorAdapter`
  - `MethodValidationPostProcessor`

## Optional Element Summary

Optional Elements
Modifier and Type
Optional Element
Description
`Class<?>[]`
`value`
Specify one or more validation groups to apply to the validation step kicked off by this annotation.

## Element Details

### value

Class<?>[] value
Specify one or more validation groups to apply to the validation step kicked off by this annotation.

JSR-303 defines validation groups as custom annotations which an application declares for the sole purpose of using them as type-safe group arguments, as implemented in `SpringValidatorAdapter`.

Other `SmartValidator` implementations may support class arguments in other ways as well.

Default:
  {}