开发者社区> SevenSun> 正文

spring-boot-validator参数校验系列(1)--------基本参数校验

简介: SpringBoot中使用参数校验
+关注继续查看

前言

目录

spring-boot-validator参数校验系列(1)--------基本参数校验

spring-boot-validator参数校验系列(2)--------分组校验

spring-boot-validator参数校验系列(3)--------自定义校验注解

spring-boot-validator参数校验系列(4)--------自定义参数校验异常

一、为什么要进行参数校验?

1.1 与业务代码分离,拒绝 if(Objects.isNull()){ //相关提示... }! 也是Controller分层的体现!

1.2也是代码复用,比如常见的字符串非空判断。

二、使用步骤

2.1 pom引入依赖

   <?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>
    <!--引入SpringBoot依赖-->
   <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.5.4</version>
    </parent>
    
    <groupId>com.tab343</groupId>
    <artifactId>mySpringboot</artifactId>
    <version>1.0-SNAPSHOT</version>

    <dependencies>
        <!--spring-boot-starter-parent的父级spring-boot-dependencies定义了validation的依赖,所以这里不必指定版本-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-validation</artifactId>
        </dependency>

        <!-- 因为示例采用web方式,所以加入web依赖-->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    
    </dependencies>
</project>

2.2校验操作

(1)普通类型(比如int,Integer)及字符串类型校验

此种情况可以直接在方法参数上进行加校验注解判断

@RestController
@Slf4j
@RequestMapping("/validation")
@Validated//校验注解,标注在类上表示该类所有方法都进行校验,如果只标注在方法,表示只根据校验注解检查此方法上的参数
public class MyValidationController {   
@RequestMapping("/methodParam")
    public void testMethodParam(@Size(min = 5, max = 10,
     message = "字符长度超出了范围!") String code){
        log.info("code is {}",code);
    }
}

使用PostMan访问

image.png

后台输出结果

image.png

(2)引用类型(即对象)校验

例如根据id更新用户名时,id和用户名不可为空!

public class MyPerson {

    @NotBlank(message = "id不可为空!")
    private String id;
    
    @Size(max = 255,min = 1, message = "姓名不可为空!")
    private String name;
}

PostMan访问

image.png

后台输出结果

image.png

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
SpringBoot ~ 数据校验
SpringBoot数据校验 添加pom依赖 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-validation</artifactId> </d...
575 0
Spring MVC url提交参数和获取参数
普通URL提交参数 该格式url为:url.do?param1=mahc&param2=8888.00 需要在上文中的HelloController对象添加方法如下: ? 1 2 3 4 5 6 7 8 9 10 11 /**      *...
599 0
使用OpenApi弹性释放和设置云服务器ECS释放
云服务器ECS的一个重要特性就是按需创建资源。您可以在业务高峰期按需弹性的自定义规则进行资源创建,在完成业务计算的时候释放资源。本篇将提供几个Tips帮助您更加容易和自动化的完成云服务器的释放和弹性设置。
18663 0
参数校验Spring的@Valid注解用法详解(上)
参数校验Spring的@Valid注解用法详解
15 0
string.Split(params char[])”最匹配的重载方法具有一些无效参数
sString.Split(",")错误 需要改为单引号 sString.Split(',')
584 0
SpringBoot-02-之参数传递
一:url传参 1.get方式Url传参:@PathVariable ////------get方式Url传参 @GetMapping({"/id/{the_Param}"}) public String id(@PathV...
1007 0
第5章—构建Spring Web应用程序—关于spring中的validate注解后台校验的解析
关于spring中的validate注解后台校验的解析 在后台开发过程中,对参数的校验成为开发环境不可缺少的一个环节。比如参数不能为null,email那么必须符合email的格式,如果手动进行if判断或者写正则表达式判断无意开发效率太慢,在时间、成本、质量的博弈中必然会落后。
940 0
同时使用Junit4的@Parameterized参数化测试和Spring容器
同时使用Junit4的@Parameterized参数化测试和Spring容器整合 之剑 2016.4.30 整合Spring容器 @SpringApplicationConfiguration(classes = Application.
1131 0
nginx rewrite 参数和例子
 本日志内容来自互联网和平日使用经验,整理一下方便日后参考。 正则表达式匹配,其中: * ~ 为区分大小写匹配 * ~* 为不区分大小写匹配 * !~和!~*分别为区分大小写不匹配及不区分大小写不匹配 文件及目录匹配,其中: * -f和!-f用来判断是否存在文件 * -d和!-d用来判断是否存在目录 * -e和!-e用来判断是否存在文件或目录 * -x和!
1468 0
粉丝说SpringBoot集成validation校验参数有坑,我试了试
粉丝说SpringBoot集成validation校验参数有坑,我试了试
17 0
+关注
SevenSun
技术创造美好生活!
23
文章
2
问答
文章排行榜
最热
最新
相关电子书
更多
OceanBase 入门到实战教程
立即下载
阿里云图数据库GDB,加速开启“图智”未来.ppt
立即下载
实时数仓Hologres技术实战一本通2.0版(下)
立即下载