服务模块在处理业务逻辑之前,通常需要对传入的参数进行验证,spring mvc 配合hibernate 提供的validator模块只需要在传入参数实体中对各个参数使用注解便可完成服务的验证工作。
dubbo 框架允许在基于spring mvc 实现的网关模块中对传入参数进行验证,验证成功后再调用相应的服务模块。
spring cloud 中的各个模块都是基于HTTP协议进行通信的,默认情况下每个模块都集成你过来springmvc 部分,所以可以再每个模块中验证参数。
注解描述 | |
@AssertTrue/@AssertFlase | 值为true/false |
Null/ NotNull | 引用为空/不为空 |
NotEmpty/NotBlank | 字符串和值都不为空 |
Max/ Min | 必须大于/小于指定的数值,可以用来验证int或long类型的数值 |
DecimalMax/DecimalMin | 必须大于/小于指定的数值,可以用来验证double或float类型的数值 |
Past/ Futrue | 必须是过去/未来的时间 |
Pattern | 字符串必须匹配正则表达式 |
Size | 字符串的长度必须在指定的范围内 |
Email/ URL | 字符串必须是一个有效的电子邮箱/URL |
Valid | 级联检查关联的实体 |
将接受参数的AccountPOJO实体作为形参时,spring mvc 会将实体与URL请求中的传参建立映射关系,同事增加@Validated注解标识开启参数验证。每一个验证实体的后面都必须要紧跟一个BindingResult 参数用来接收验证的结果
其中@Validated 所跟的push.class 和 modify.class 用于区分当前验证组,即在accountValidate 类中修饰字段验证格式时的group 配置的属性,如果添加则标识该controller 所接受的传入参数值只验证指定范围内的字段,如果不传入则标识验证全部。
result.hasErrors()判断验证结果是否有错误,并且通过result.getFieldErrors()获取每一个字段对应的错误信息,最后改变response 状态码并返回错误信息。
项目展示:https://download.csdn.net/download/qq_35781178/10570015
上一篇:https://blog.csdn.net/qq_35781178/article/details/81256915
下一篇:https://blog.csdn.net/qq_35781178/article/details/81265167