微服务校验常用的方式有:
1、数据库约束:在数据库中设置数据的相关约束,如字段长度、类型等,来确保数据的正确性。
2、 后端校验:在后端进行数据的校验,如参数校验、业务校验等,来确保数据的合法性。
3、 前端校验:在前端进行数据的校验,如表单校验、数据格式校验等,来确保用户输入数据的正确性。
4、 消息队列校验:在消息队列中,对消息进行校验,确保消息的内容符合业务要求,以保证后续的流程的正确性。
5、 API 校验:对 API 接口进行校验,确保 API 接口的参数格式、数据类型、合法性等
使用Spring Boot的注解校验能够带来以下优势:
1、方便快捷:使用注解校验可以简单地将校验规则与被校验对象绑定在一起,无需手动编写复杂的校验逻辑。
2、 高效可靠:使用注解校验可以快速发现校验错误,有效增加应用程序的可靠性。注解校验是在Java Bean Validation API的基础上开发的,可靠性有保证。
3、 代码简洁:使用注解校验可以省去大量的校验代码,大大减少了代码量。
4、易于维护:使用注解校验可以有效降低代码的复杂度,使得代码容易维护和修改。
5、可扩展性:使用注解校验可以通过自定义注解实现更为复杂的校验规则,增强了校验的灵活性和可扩展性。
这里我们使用注解的方式进行参数校验,SpringBoot中常用的用于参数校验的注解如下:
@AssertFalse 所注解的元素必须是Boolean类型,且值为false
@AssertTrue 所注解的元素必须是Boolean类型,且值为true
@DecimalMax 所注解的元素必须是数字,且值小于等于给定的值
@DecimalMin 所注解的元素必须是数字,且值大于等于给定的值
@Digits 所注解的元素必须是数字,且值必须是指定的位数
@Future 所注解的元素必须是将来某个日期
@Max 所注解的元素必须是数字,且值小于等于给定的值
@Min 所注解的元素必须是数字,且值小于等于给定的值
@Range 所注解的元素需在指定范围区间内
@NotNull 所注解的元素值不能为null
@NotBlank 所注解的元素值有内容
@Null 所注解的元素值为null
@Past 所注解的元素必须是某个过去的日期
@PastOrPresent 所注解的元素必须是过去某个或现在日期
@Pattern 所注解的元素必须满足给定的正则表达式
@Size 所注解的元素必须是String、集合或数组,且长度大小需保证在给定范围之内
@Email 所注解的元素需满足Email格式
注解使用的问题
String类型不能用@NotNull,更换@NotEmpty即校验成功
@NotNull:
不能为null,但可以为empty(“”," “,” “) ,一般用在基本数据类型的非空校验上,而且被其标注的字段可以使用 @size/@Max/@Min对字段数值进行大小的控制
@NotEmpty:
不能为null,而且长度必须大于0(” “,” "),一般用在集合类上面
@NotBlank:
不能为null,注意是只能用在String上,而且调用trim()后,长度必须大于0
简述三者区别
@NotNull://CharSequence, Collection, Map 和 Array 对象不能是 null, 但可以是空集(size = 0)。
@NotEmpty://CharSequence, Collection, Map 和 Array 对象不能是 null 并且相关对象的 size 大于 0。
@NotBlank://String 不能是 null 且去除两端空白字符后的长度(trimmed length)大于 0。