@Documented @Retention(value=RUNTIME) @Target(value={METHOD,FIELD,CONSTRUCTOR,PARAMETER,TYPE_USE}) @Constraint(validatedBy=SpelValidator.class) public @interface SpelValid
Valid,用于开启 cn.sticki.validator.spel.constrain 包下定义的spel约束。
注意:该注解需要配合 Valid 或 Validated 注解一起使用。
这种行为是非递归应用的,只对当前标记对象的属性生效,不会对其属性的下层属性进行验证。
以下是一个简单的例子:
@PostMapping("/test")
public void test(@RequestBody @Valid TestParamVo testParamVo) {
...
}
@Data
@SpelValid
public class TestParamVo {
private Boolean switchVoice;
@SpelNotNull(condition = "#this.switchVoice == true")
private Object voiceContent;
@Valid
@SpelValid
private TestParamVo2 testParamVo2;
}
@Data
public class TestParamVo2 {
@SpelNotNull(condition = "true")
private Object object;
}
在上面的例子中,TestParamVo 和 TestParamVo2 都成功开启了spel校验。
public abstract String message
public abstract Class<?>[] groups
public abstract Class<?>[] payload
@Language(value="SpEL") public abstract String condition
当 表达式为空 或 计算结果为true 时,表示开启校验
@Language(value="SpEL") public abstract String[] spelGroups
当分组信息为空时,表示不开启分组校验
Copyright © 2024. All rights reserved.