@Validated指定校验顺序
在Java中,使用@NotNull注解时,可以指定多个参数的顺序。为了指定顺序,你可以使用@GroupSequence注解。
首先,为每个需要校验的参数定义一个接口,并在接口上添加@GroupSequence注解,指定参数的校验顺序。然后,在每个参数上使用@NotNull注解。
下面是一个示例代码:
java
import javax.validation.GroupSequence;
import javax.validation.constraints.NotNull;
public class MyRequest {
@NotNull(groups = {FirstGroup.class})
private String field1;
@NotNull(groups = {SecondGroup.class})
private String field2;
public interface FirstGroup {}
public interface SecondGroup {}
@GroupSequence({FirstGroup.class, SecondGroup.class})
public interface ValidationOrder {}
}
在上面的示例中,我们定义了两个参数field1和field2,并使用@NotNull注解进行约束。我们还定义了两个接口FirstGroup和SecondGroup,分别用于表示参数的校验组。最后,我们定义了一个接口ValidationOrder,并使用@GroupSequence注解指定了参数的校验顺序。
这样,当对MyRequest对象进行校验时,将按照指定的顺序进行校验。首先校验field1,然后校验field2。如果任何一个参数不满足约束条件,将抛出相应的异常。