@Required
является аннотацией JSR-303, созданной в рамках игры. JSR-303 является спецификацией для проверки Javabeans, что позволяет гарантировать, что данные Java bean-компонентов попадают в набор ограничений . Примеры некоторых стандартных аннотаций проверки:
- @Max - аннотированный элемент должен быть числом, значение которого должно быть ниже или равно заданному максимуму.
- @Min - аннотированный элемент должен быть числом, значение которого должно быть выше или равно указанному минимуму.
- @NotNull - Аннотированный элемент не должен быть нулевым.
Каждый JSR-303 аннотаций позволило определить группы, где каждая группа действительно просто класс. Эти группы могут использоваться для выполнения подмножества валидаций для данного компонента. В вашем конкретном примере разработчики определили два интерфейса для представления этих групп - All
и Step1
. Затем они добавляют группы в аннотации проверки, чтобы указать, что эти проверки принадлежат группе. Так что для ниже класса:
public class MyBean {
@Required(groups = {All.class, Step1.class})
@MinLength(value = 4, groups = {All.class})
public String username;
}
MyBean bean = new MyBean();
ValidatorFactory factory = Validation.buildDefaultValidatorFactory();
Validator validator = factory.getValidator();
Ниже будет выполнять проверку @Required
и @MinLength
для username
поле:
validator.validate(bean, All.class);
Принимая во внимание следующее будет выполнять только проверку @Required
(для username
поля):
validator.validate(bean, Step1.class);
Спасибо, это было очень полезно. – vinos