我做动作你来猜的网站,沈阳建设工程管理中心,厦门网站建设哪家厦门建设银行,品牌建设费用包括哪些文章目录 前言引入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… 文章目录 前言引入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 Validation对Hibernate validation进行了二次封装支持在SpringMvc中自动校验
那么在Restful风格流行的当下在SpringBoot中主流的参数校验场景包括
对于POST、PUT请求使用 RequestBody传递的VO对象参数校验对于GET、DELETE请求使用 RequestParam传递的url拼接参数校验对于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 dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-validation/artifactId
/dependency一、POST/PUT RequestBody参数校验 对于POST、PUT请求首选使用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所以当入参使用id0调用时会被参数校验异常的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所以当入参使用pageSize1000调用时会被参数校验异常的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感谢大家的支持~
想要看更多实战好文章还是给大家推荐我的实战专栏–《基于SpringBootSpringCloudVue前后端分离项目实战》由我和 前端狗哥 合力打造的一款专栏可以让你从0到1快速拥有企业级规范的项目实战经验
具体的优势、规划、技术选型都可以在《开篇》试读
订阅专栏后可以添加我的微信我会为每一位用户进行针对性指导
另外别忘了关注我天罡gg 怕你找不到我发布新文不容易错过 https://blog.csdn.net/scm_2008