首页 > 编程语言 >Java 系统学习 | Springboot 数据验证

Java 系统学习 | Springboot 数据验证

时间:2024-01-30 15:14:50浏览次数:27  
标签:Java String NotEmpty 验证 private 为空 import validation Springboot

本篇使用 Springboot3 框架,IDEA2022 编辑器,java17 版本。

上一篇 的基础上进行优化


添加依赖

pom.xml 中添加依赖,记得更新 maven

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

pojo 类中添加验证规则

/pojo/User.java 文件

  • message 自定义验证提示信息

  • regexp 定义正则

package com.holly.pojo;

import jakarta.validation.constraints.Email;
import jakarta.validation.constraints.NotEmpty;
import jakarta.validation.constraints.NotNull;
import jakarta.validation.constraints.Pattern;
import lombok.Data;

import java.time.LocalDateTime;

@Data
public class User {
    @NotNull
    private int id;
    @NotEmpty(message = "用户名不能为空")
    private String username;
    @NotEmpty(message = "密码不能为空")
    private String password;
    @NotEmpty(message = "别名不能为空")
    @Pattern(regexp = "^\\S{1,10}$")
    private String nickname;
    @NotEmpty
    @Email
    private String email;
    private String userPic;
    private LocalDateTime createTime;
    private LocalDateTime updateTime;
}

请求参数添加 @Valid 注解

/controller/UserController 中的 add 方法

    @PostMapping
    public String add(@Valid User user) {
        userService.add(user);

        return "添加成功";
    }

全局异常处理

创建包目录 exception,新建 exception/ValidationException.java

package com.holly.exception;

import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;

@ControllerAdvice
public class ValidationException {

    @ExceptionHandler(Exception.class)
    public Object handleException(Exception e) {
        e.printStackTrace();

        return StringUtils.hasLength(e.getMessage()) ? e.getMessage() : "操作失败";
    }
}

常用验证注解

  • @NotNull 不为 null

  • @Null 必须是 null

  • @NotBlank 不能为空字符串或全空格

  • @NotEmpty 字符串不能为空

  • @Max 最大值

  • @Min 最小值

  • @Length(min=,max=) 长度范围

  • @Size(min=,max=) 长度范围

  • @Email 邮箱

  • @URL url

  • @Pattern 正则验证

  • @AssertFalse boolean 值必须是 false

  • @AssertTrue boolean 值必须是 true

标签:Java,String,NotEmpty,验证,private,为空,import,validation,Springboot
From: https://www.cnblogs.com/rendd/p/17997140

相关文章

  • JAVA之浮点数的比较
    一、浮点数比较概述由于计算机内部浮点数精度的原因,使得本来应该相等的两个浮点数可能存在微小的误差,所以对于浮点数之间浮点数之间的等值判断,我们不能用==来进行比较。通常情况下,对于浮点数比较,我们通常指定一个误差范围,两个浮点数的差值在此范围之内,则认为是相等的。二、JS......
  • (转)Java中equals和==、hashcode的区别
    https://www.cnblogs.com/lixuwu/p/5676207.htmlhttps://www.cnblogs.com/lixuwu/p/10662234.htmlhttps://timzhouyes.github.io/2020/02/27/Java%E7%89%B9%E7%A7%8D%E5%85%B5/https://blog.csdn.net/a745233700/article/details/83186808https://www.cnblogs.com/dolphin......
  • 服务器需要使用第三方系统时需要登录验证
    创建第三方登录认证和凭证信息HttpHosttargetHost=newHttpHost(host,newInteger(port).intValue(),"http");CredentialsProvidercredentialsProvider=newBasicCredentialsProvider();credentialsProvider.setCredentials(newAuthScope(targetHost.getHostName(),targ......
  • Java连接kubernates集群最优雅的两种方式
    创建maven工程,pom.xml中引入连接k8s的客户端jar包:<properties><maven.compiler.source>8</maven.compiler.source><maven.compiler.target>8</maven.compiler.target><fabric.io.version>6.10.0</fabric.io.version></properties......
  • Java微服务框架开发
    Swagger常见问题:Swagger与高版本SpringBoot不兼容问题  分析源码查找问题解决springboot2.6和swagger冲突的四种方法解决方法:按如下配置修改策略,如仍然不需,需按照上述四种方法第四种添加Beanspring:mvc:path-match:matching-strategy:ant_p......
  • 初识Java
    Java特征和优势简单性面向对象可移植性高性能分布式动态性多线程安全性健壮性Java三大版本WriteOnce、RunAnywhereJavaSE:标准版(桌面程序,控制台开发...)JavaME:嵌入式开发(手机,小家电...)JavaEE:E企业级开发(Web端,服务器开发...)JDK、JRE、JVMJDK:JavaDevelopme......
  • 使用Java编写HTTP客户端和服务器:一场与网络的欢乐共舞
    你是否曾经想过,如果有一天你可以和网络对话,那会是怎样的场景?好消息,Java给了你这个机会!今天,我们要一起探讨如何使用Java编写HTTP客户端和服务器,让你和网络的互动变得更加有趣和欢乐。首先,我们需要了解HTTP是什么。简单来说,HTTP就是“超文本传输协议”,它就像是我们与网络交流的语言。......
  • 使用Java实现HTTPS通信:一场加密的探戈
    你知道吗,HTTPS不仅仅是一个简单的字母替换游戏,它是互联网安全的重要组成部分。好消息是,有了Java,我们也可以轻松地实现HTTPS通信!今天,就让我们一起跳进加密的探戈世界,了解如何使用Java实现HTTPS通信。首先,我们要明白HTTPS是什么。简单来说,HTTPS就是“超文本传输协议安全版”,它通过使......
  • 使用Java编写RESTful API:一场与HTTP的浪漫之舞
    下面是一个简单的示例,展示如何使用SpringBoot创建一个基本的RESTfulAPI:1. 创建一个新的SpringBoot项目。你可以使用SpringInitializr或任何你喜欢的IDE来创建项目。2. 3. 在pom.xml文件中添加SpringBootWebStarter依赖:4. xml复制代码<dependency> <groupId>org.springf......
  • Java实现基于清除后分配规则的垃圾回收器及其实现原理
    (Java实现基于清除后分配规则的垃圾回收器及其实现原理)实现基于清除后分配(mark-and-sweep)规则的垃圾回收器,可以按照以下步骤进行1.标记阶段(MarkingPhase)从根对象(如堆栈、全局变量)开始,递归地遍历所有可达的对象,并将其标记为活动对象,即不被回收的对象。这一过程可以使用深度优......