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)长度必须在给定范围
@Email字符串必须是合法邮件地址
@PastDate和Calendar对象必须在当前时间之前
@FutureDate和Calendar对象必须在当前时间之后
@Pattern(regexp=“正则”)String对象必须符合正则表达式

image-20200425225612707