首页 文章 精选 留言 我的

精选列表

搜索[1 X 认证],共10000篇文章
优秀的个人博客,低调大师

第十二篇:SpringBoot 2.x数据校验

介绍 在项目的过程中,对于参数的校验是必须的,如果参数比较少的话我们可以直接通过代码进行校验,但是数据较大时再用这个方法就比较笨重了,接下来就该我们的主角Validation闪亮登场了 pom.xml <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optional>true</optional> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> </dependencies> 实际上在这里数据校验都是调用的javax.validation,spring-boot-starter-web中也包含了hibernate-validator,有兴趣的可以去翻翻文档 User.java package com.priv.gabriel.entity; import lombok.Data; import org.hibernate.validator.constraints.Length; import javax.validation.constraints.Min; import javax.validation.constraints.NotBlank; import javax.validation.constraints.NotNull; /** * Created with Intellij IDEA. * * @Author: Gabriel * @Date: 2018-10-23 * @Description: */ @Data public class User { @NotBlank(message = "name不允许为空") @Length(min = 2,max = 10,message = "你的长度不对劲呀") private String name; @NotNull(message = "进入未成年人入内!") @Min(18) private int age; @NotBlank(message = "拒绝黑户") private String address; } 接下来只需要在Controller层中使用@valid进行校验就可以了 package com.priv.gabriel.controller; import com.priv.gabriel.entity.User; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.validation.Valid; /** * Created with Intellij IDEA. * * @Author: Gabriel * @Date: 2018-10-23 * @Description: */ @RestController @RequestMapping("/user") public class UserController { @RequestMapping("/check") public String check(@Valid User user){ return "检测完毕!没有问题"; } } 用Rest Client工具简单检测一下 image.png 结果当然是... { "timestamp": "2018-10-23T09:01:45.159+0000", "status": 400, "error": "Bad Request", "errors": [{ "codes": ["Length.user.name", "Length.name", "Length.java.lang.String", "Length"], "arguments": [{ "codes": ["user.name", "name"], "arguments": null, "defaultMessage": "name", "code": "name" }, 10, 2], "defaultMessage": "你的长度不对劲呀", "objectName": "user", "field": "name", "rejectedValue": "", "bindingFailure": false, "code": "Length" }, { "codes": ["Min.user.age", "Min.age", "Min.int", "Min"], "arguments": [{ "codes": ["user.age", "age"], "arguments": null, "defaultMessage": "age", "code": "age" }, 18], "defaultMessage": "最小不能小于18", "objectName": "user", "field": "age", "rejectedValue": 17, "bindingFailure": false, "code": "Min" }, { "codes": ["NotBlank.user.address", "NotBlank.address", "NotBlank.java.lang.String", "NotBlank"], "arguments": [{ "codes": ["user.address", "address"], "arguments": null, "defaultMessage": "address", "code": "address" }], "defaultMessage": "拒绝黑户", "objectName": "user", "field": "address", "rejectedValue": "", "bindingFailure": false, "code": "NotBlank" }, { "codes": ["NotBlank.user.name", "NotBlank.name", "NotBlank.java.lang.String", "NotBlank"], "arguments": [{ "codes": ["user.name", "name"], "arguments": null, "defaultMessage": "name", "code": "name" }], "defaultMessage": "name不允许为空", "objectName": "user", "field": "name", "rejectedValue": "", "bindingFailure": false, "code": "NotBlank" }], "message": "Validation failed for object='user'. Error count: 4", "path": "/user/check" } 好了,到这里可以看到我们的设置已经生效了,关于数据校验你get到了吗?项目下载地址

资源下载

更多资源
腾讯云软件源

腾讯云软件源

为解决软件依赖安装时官方源访问速度慢的问题,腾讯云为一些软件搭建了缓存服务。您可以通过使用腾讯云软件源站来提升依赖包的安装速度。为了方便用户自由搭建服务架构,目前腾讯云软件源站支持公网访问和内网访问。

Nacos

Nacos

Nacos /nɑ:kəʊs/ 是 Dynamic Naming and Configuration Service 的首字母简称,一个易于构建 AI Agent 应用的动态服务发现、配置管理和AI智能体管理平台。Nacos 致力于帮助您发现、配置和管理微服务及AI智能体应用。Nacos 提供了一组简单易用的特性集,帮助您快速实现动态服务发现、服务配置、服务元数据、流量管理。Nacos 帮助您更敏捷和容易地构建、交付和管理微服务平台。

Spring

Spring

Spring框架(Spring Framework)是由Rod Johnson于2002年提出的开源Java企业级应用框架,旨在通过使用JavaBean替代传统EJB实现方式降低企业级编程开发的复杂性。该框架基于简单性、可测试性和松耦合性设计理念,提供核心容器、应用上下文、数据访问集成等模块,支持整合Hibernate、Struts等第三方框架,其适用范围不仅限于服务器端开发,绝大多数Java应用均可从中受益。

Sublime Text

Sublime Text

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。

用户登录
用户注册