欢迎来到Introzo百科
Introzo百科
你还在用if做条件验证吗?我们尝试使用@Validated,它更优雅!
你还在用if做条件验证吗?
请先看一下下面的代码:(简单的例子,代码不规范)
@ApiOperation("添加用户")
@PostMapping("/addUser")
公共 结果Vo insert(@ApiParam("用户信息实体")@RequestBody用户user){
if(user.getUserName!= null){
扔 新 BusinessException("用户名不能为空");
}
if(user.getUserPhone!=null){
扔 new BusinessException("用户电话号码不能为空 ");
}
if( user.getUserPhone().length()){
扔新 BusinessException ("用户电话号码格式不规范");
}
<new ResultVo(userService.insert(user)) ;
}
上面的代码主要是对用户实体进行条件验证。
但是这么多if,纯粹是新手写的,也让代码显得臃肿、难看、不优雅!
接下来,让我们学习如何使用优雅的参数验证@Validated
!
1。优雅的参数验证@Validated
@Valid 和 @Validated 是 spring Validation
框架提供的参数验证函数。
1。 @Valid 和 @Validated
的用法(区别)两者的主要功能是它们作为标准的 JSR-303 规范。检查控制器输入参数是否符合规格时,可使用@Validated
或@Valid
进行基本验证功能。差别不大。但两者在分组、标注地点、嵌套验证等功能上有所不同:
@有效:
@Valid注解用于验证,所属包为:javax.validation.Valid
。
用于方法输入参数时,无法单独提供嵌套验证功能。 可用于成员属性(字段),提示验证框架执行嵌套验证。可以与嵌套验证注解@Valid一起使用来执行嵌套验证。
@已验证:
@Validated
是@Valid
的封装,由Spring提供的验证机制使用。
用于方法输入参数时,无法单独提供嵌套验证功能。它不能用于成员属性(字段),也不能提示框架进行嵌套验证。可以与嵌套验证注解@Valid一起使用来执行嵌套验证。
2。介绍并使用@Validated参数验证
引入验证依赖包
<依赖>
<groupId>org.springframework.bootgroupId> <artifactId>spring-boot-启动器artifactId>
依赖项>
<依赖项>
<groupId >javax.validationgroupId>
<artifactId>validation-apiartifactId>
<版本>2.0.1.最终版版本 >
依赖项>
<依赖项>
<groupId>org. hibernate.validatorgroupId>
TArtifactid > 休眠验证器artiFactid>
依赖项>
找到自己的实体类并定义要验证的参数
相关文章
- 10-07 Java多线程系列
- 10-07 Java多线程系列
- 10-07 Java多线程系列
- 10-07 对应tensorflow+keras+python
- 10-07 AD层切换操作技巧分享及注意事项
- 10-07 “需要Ninja加载C++扩展”解决方案
- 10-07 未来!微软推送Windows 11 Build 2
- 10-07 Windows 11 最新预览版来了!我们来看看更
- 10-07 Windows 11/Windows 10更新更过
- 10-07 模块七:微服务监控报警Prometheus架构与实
- 10-07 实际使用Prometheus搭建监控系统
- 10-07 golang prometheus包的使用
- 10-07 让微信如虎添翼的神器!这即将起飞!
- 10-07 梦回Windows XP,微软Win10/Win1
- 10-07 微软Win8多个早期概念设计曝光:全新开始屏幕、任
- 10-07 Excel单元格内容不完整?教你如何一键完成
- 10-07 为什么有HTTP协议,还有websocket协议
- 10-07 由于核心隔离(VBS),微软Win11最新更新将禁
- 10-07 在线文档服务商SurDoc获得IDG 400万美元
- 10-07 多玩人人等网站用户数据泄露可能会造成连锁反应
- 最近发表