@Required 是在 Play 框架中创建的自定义 JSR-303 注释。 JSR-303 是用于验证 Javabean 的规范,它允许确保给定 Java bean 的值落入一组约束。一些标准验证注解的示例:
-
@Max - 带注释的元素必须是一个数字,其值必须小于或等于指定的最大值。
-
@Min - 带注释的元素必须是一个数字,其值必须大于或等于指定的最小值。
-
@NotNull - 带注释的元素不能为空。
每个 JSR-303 注释都可以定义 groups,其中每个组实际上只是一个类。这些组可用于对给定 bean 执行验证子集。在您的特定示例中,实现者定义了两个接口来表示这些组 - 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();
下面将对username字段执行@Required和@MinLength验证:
validator.validate(bean, All.class);
而以下将仅执行 @Required 验证(对于 username 字段):
validator.validate(bean, Step1.class);