Version: Next
JSR303数据校验
前端验证用户名、密码、邮箱格式
@Validated
@Component
@ConfigurationProperties(prefix = "person")
@Validated
public class Person {
@Email()
private String name;
private Integer age;
private Boolean happy;
private Date birthday;
private Map<String, Object> maps;
private List<Object> list;
private Cat cat;
//...
测试:
@SpringBootTest
class Springboot02ConfigApplicationTests {
@Autowired
private Person person;
@Test
void contextLoads() {
System.out.println(person);
}
}
如我们预期会报错——报错信息
Property: person.name
Value: Alice8792a7a5-4ab4-48c1-a126-c3a736cb49de
Origin: class path resource [application.yaml]:5:9
Reason: 不是一个合法的电子邮件地址
JSR303校验全部注解
注解 | 功能 |
---|---|
@Null | 对象必须为null |
@NotNull | 对象必须不为null,无法检查长度为0的字符串 |
@NotBlank | 字符串必须不为Null,且去掉前后空格长度必须大于0 |
@AssertTrue | 对象必须为true |
@AssertFalse | 对象必须为false |
@Max(Value) | 必须为数字,且小于或等于Value |
@Min(Value) | 必须为数字,且大于或等于Value |
@DecimalMax(Value) | 必须为数字( BigDecimal ),且小于或等于Value。小数存在精度 |
@DecimalMin(Value) | 必须为数字( BigDecimal ),且大于或等于Value。小数存在精度 |
@Digits(integer,fraction) | 必须为数字( BigDecimal ),integer整数精度,fraction小数精度 |
@Size(min,max) | 对象(Array、Collection、Map、String)长度必须在给定范围 |
字符串必须是合法邮件地址 | |
@Past | Date和Calendar对象必须在当前时间之前 |
@Future | Date和Calendar对象必须在当前时间之后 |
@Pattern(regexp=“正则”) | String对象必须符合正则表达式 |