相信很多刚开始写javaweb项目的同学,在后台数据校验上面,遇到过很多不开心的事情,比如测试提了好多bug都是他们通过postman直接调用接口(不存在前台校验),然后就各种乱写参数,导致各种bug痛不欲生,你就去反驳说什么前台肯定要校验的啊,然后就会乖乖的被人家怼回来,这个时候作为小白的我们,对一个个的参数开始进行一系列的判断,比如:非空,是否是数字,null,长度等等,然后你就会发现,有的接口带的参数特别的多,要是全用这种判断,然后返回自定义异常,或者统一的自定义异常你就会特别痛苦。
该用什么来解决呢,来看一下这个jar包
javax.validation:validation-api:2.0.1.Final.jar
这个包的好用之处在于,不用把校验放在保存,或者修改的方法里面,而是直接写在前端传来的数据模型中,直接看使用案列
1.@NotNull
@NotNull(message = "ID不能为空") private Long xxid;
2. @NotBlank
@NotBlank(message = "证件编号不能为空") private String idNo;
3. @Pattern
@Pattern(regexp = "^[123]{1}$", message = "证件类型[1身份证,2护照,3军官证]") private String idType;
4. @Size
@Size(min = 2,max = 10,message = "姓名的字数最少2个字,最大10个字") private String name;
5. @Max @Min
@Max(value = 20,message = "年份最长20年") @Min(value = 0,message = "年份最少0年") private Integer xxyear;
6. @PositiveOrZero
@PositiveOrZero(message = "价格必需大于0") private BigDecimal price;
这里给大家举出来的例子,只是其中的一部分,
这里面能看到还有很多可以供大家去使用,有了这个大家就不用在方法中写一大篇校验数据的判断了。
第一次写这种文章,虽然可能大家都会,是我自己不会而已,但是希望通过这种方式,让自己慢慢成长,程序路漫漫,我陪自己成长!