当前位置: 首页 > news >正文

贵州企业网站建设招商广州网站优化方式

贵州企业网站建设招商,广州网站优化方式,响应式网站建设公司,中山市西区网站制作文章目录 前言引入Maven依赖一、POST/PUT RequestBody参数校验1.1 Valid或Validated注解配合constraints注解1.2 测试运行 二、GET/DELETE RequestParam参数校验2.1 Validated注解配合constraints注解2.2 测试运行 三、GET 无注解参数校验3.1 Valid或Validated注解配合constrai…

CSDN成就一亿技术人

文章目录

  • 前言
  • 引入Maven依赖
  • 一、POST/PUT @RequestBody参数校验
    • 1.1 Valid或Validated注解配合constraints注解
    • 1.2 测试运行
  • 二、GET/DELETE @RequestParam参数校验
    • 2.1 Validated注解配合constraints注解
    • 2.2 测试运行
  • 三、GET 无注解参数校验
    • 3.1 Valid或Validated注解配合constraints注解
    • 3.2 测试运行
  • 总结
  • 最后


前言

先说下Spring Validation参数校验,它是前后端分离项目SpringBoot后端Controller层必做的工作之一,目的是防止非法调用,Java JSR303定义了校验标准validation-api,但没有实现,Hibernate validation是规范的实现,另外还增加了一些constraints注解,最后Spring ValidationHibernate validation进行了二次封装,支持在SpringMvc中自动校验!

那么,在Restful风格流行的当下,在SpringBoot中,主流的参数校验场景包括:

  1. 对于POSTPUT请求,使用 @RequestBody传递的VO对象参数校验
  2. 对于GET、DELETE请求,使用 @RequestParam传递的url拼接参数校验
  3. 对于GET请求的无注解参数校验

接下来,我会图文结合带大家正确使用 @Valid@Validated以及constraints相关注解,工作必用,实战必会,最后有总结,Let’s Go!

Java的标准定义的constraints注解位于:javax.validation.constraints

Hibernate validation增加的constraints注解位于:org.hibernate.validator.constraints

参数校验的绝配搭档:7.11 SpringBoot实战 全局异常处理 - 深入细节详解


引入Maven依赖

springboot2.3之前,引入spring-boot-starter-web时,自动引入validation依赖,

springboot2.3之后,需要单独引入依赖spring-boot-starter-validation

<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-validation</artifactId>
</dependency>

一、POST/PUT @RequestBody参数校验

对于POSTPUT请求,首选使用@RequestBody传递VO对象参数.

1.1 Valid或Validated注解配合constraints注解

以BookAdminController的saveBook为例:

  • 在方法参数前加@Valid注解(换成@Validated注解也可以):

在这里插入图片描述

  • BookVO对象的字段上加constraints注解,例如,对bookName加一个@NotNull注解

在这里插入图片描述

1.2 测试运行

在这里插入图片描述

入参未填bookName,会被参数校验异常MethodArgumentNotValidException异常捕获,最后返回上图的结果~

在这里插入图片描述


二、GET/DELETE @RequestParam参数校验

对于GET、DELETE请求,首选使用@RequestParam传递的url拼接参数。

2.1 Validated注解配合constraints注解

以BookAdminController的getBook为例:

这时,需要在Controller上加@Validated注解, 在方法参数前加constraints注解,以@Min注解为例:

在这里插入图片描述

2.2 测试运行

在这里插入图片描述

因为@Min限制了最小值为1,所以当入参使用id=0调用时,会被参数校验异常ConstraintViolationException异常捕获:

在这里插入图片描述


三、GET 无注解参数校验

在@RequestParam前加constraints注解的方式,参数少还可以用,参数多的时侯推荐封装成VO对象,调用方式依然不变~

3.1 Valid或Validated注解配合constraints注解

以BookAdminController的getBookCommentList为例,原来是这样写的:

在这里插入图片描述

现将参数封装成一个PageVO对象,并在字段上增加了constraints注解:@Min@Max@NotNull

@Data
public class PageVO implements Serializable {@Min(value = 1, message = "pageNum必须大于1")private Integer pageNum = 1;@Max(value = 100, message = "pageSize不能超过100")private Integer pageSize = 100;@Min(value = 1, message = "id必须大于1")@NotNullprivate Integer id;
}

这时,和@RequestBody参数校验加注解的方式相同,对方法参数加@Valid注解(换成@Validated注解也可以):

在这里插入图片描述

3.2 测试运行

在这里插入图片描述

因为@Max限制了pageSize最大值为100,所以当入参使用pageSize=1000调用时,会被参数校验异常BindException异常捕获:

在这里插入图片描述


总结

  • POST/PUT @RequestBody参数校验,在方法参数VO前加@Valid@Validated,在VO字段上加constraints相关注解
  • GET/DELETE @RequestParam参数校验,在Controller上加@Validated,在方法参数前加constraints相关注解
  • GET 无注解参数校验,方法参数VO前加@Valid@Validated,在VO字段上加constraints相关注解

对于constraints相关注解具体细节,我找了两篇供大家参考:

强悍的Spring之spring validation

Hibernate Validator详解


最后

看到这,觉得有帮助的,刷波666,感谢大家的支持~

想要看更多实战好文章,还是给大家推荐我的实战专栏–>《基于SpringBoot+SpringCloud+Vue前后端分离项目实战》,由我和 前端狗哥 合力打造的一款专栏,可以让你从0到1快速拥有企业级规范的项目实战经验!

具体的优势、规划、技术选型都可以在《开篇》试读!

订阅专栏后可以添加我的微信,我会为每一位用户进行针对性指导!

另外,别忘了关注我:天罡gg ,怕你找不到我,发布新文不容易错过: https://blog.csdn.net/scm_2008

http://www.hkea.cn/news/780481/

相关文章:

  • 网络营销方式的思维导图seo关键词优化系统
  • wordpress访客ip记录福清市百度seo
  • 网站下载速度慢互联网广告推广公司
  • 电影网站空间配置网络营销的工具和方法有哪些
  • 包装设计网站免费百度seo搜索引擎优化厂家
  • 免费做公司网站sem对seo的影响有哪些
  • 网站空间购买费用关键词优化计划
  • 网站制作可以卖多少钱陕西网站建设制作
  • 深圳中小企业网站制作谷歌海外广告投放
  • 做游戏网站的需求分析创建app平台
  • 青岛胶南做网站的有多少seo商学院
  • 二月网站建设南宁百度个人中心登录
  • 如何在相关网站免费做宣传广告免费建立个人网站官网
  • 做搜狗网站优化首自己建立网站步骤
  • 企业资质查询官方网站最好的小说网站排名
  • 乐平网站设计北京互联网公司
  • 朝阳企业网站建设方案费用郑州网络营销学校
  • 建站行业发展百度广告代运营
  • 如何做积分商城网站鸡西seo顾问
  • p2p网站开发文档免费b站软件下载
  • 有没有做q版头像的网站今天百度数据
  • wordpress页面修改插件seo顾问阿亮
  • 政府门户网站建设标准国际婚恋网站排名
  • 上海青浦网站建设郑州靠谱seo电话
  • 网站建设怎么样seo专家招聘
  • 在网盘上怎么做自己的网站整站优化推广
  • php建设网站实训百度搜索引擎的总结
  • 怎么在360自己做网站重庆seo排名收费
  • 外贸网站建设浩森宇特教育培训报名
  • 网站开发价目表深圳市前十的互联网推广公司