SpringBoot使用validation进行自参数校验

embedded/2024/10/22 5:19:33/

一:介绍

        在 SpringBoot 项目开发中,很多与数据库交互的参数需要校验数据正确性。很多小伙伴会把参数判断写进代码里,但是这种写法往往会有低可读性以及多处使用的时候,需要变更验证规则时,不易于维护等缺点。今天给大家介绍 Starter 的 validation 依赖。可以直接使用注解的方式进行参数的校验,可读性与维护性都显著提高。

        一些常见的:

二:使用

1、添加依赖

        该依赖属于 org.springframework.boot 下。

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

        因为后面用到了 @Data ,所以需要添加 lombok。

            <dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.18.30</version></dependency>
2、编写 pojo 类

        代码如下:

import lombok.Data;import javax.validation.constraints.*;
import java.time.LocalDate;@Data
public class Person {@NotBlank(message = "名字不能为空")private String name;@Max(value = 100,message = "年龄不能大于100岁")@Min(value = 0 ,message = "年龄不能小于0岁")private int age;@Email(message = "邮箱格式不正确")private String email;//@Past(message = "生日不能大于当前日期")//private LocalDate birthDay;
}
3、编写controller类
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;import javax.validation.Valid;@RestController
@RequestMapping("/validation")
public class validationController {@PostMapping("/demo")public Person demo(@RequestBody @Valid Person person){return person;}
}
4、post接口数据

{

    "name": "",

    "age": -1,

    "email": "email#163.com"

}

6、结果


http://www.ppmy.cn/embedded/118205.html

相关文章

数据结构:线性表

1、线性表概述 1.1线性表的定义 线性表&#xff08;list&#xff09;&#xff1a;零个或多个数据元素的有限序列。 简单地来说&#xff0c;我们可以用下面这张图来描述一个线性表&#xff1a; 1.2 线性表的存储结构 1.2.1顺序存储结构——顺序表 顺序表是将数据全部存储到…

Selenium爬虫-获取天气并使用MapReduce分析温度最高的那一天

文章目录 Selenium爬虫pom.xmlWeatherScraper.javaweatherScraper.java结果使用MapReduce进行分析最高哪一天气温最高map部分reduce部分main部分输出结果 Selenium爬虫 pom.xml <?xml version"1.0" encoding"UTF-8"?> <project xmlns"ht…

C++中的stoi()与to_string():

stoi()函数 stoi()函数是C11标准中引入的一个新函数&#xff0c;用于将字符串转换为整数。它的名称是“string to integer”的缩写&#xff0c;意为“字符串到整数”的转换。 stoi()函数的原型如下&#xff1a; int stoi(const string& str, size_t* pos 0, int base 10…

Vue.js与Flask/Django后端配合

Vue.js与Flask/Django后端配合 在现代Web开发领域&#xff0c;前后端分离已成为一种流行的架构模式。Vue.js作为一款轻量级、高性能的前端框架&#xff0c;与Flask或Django这样的后端框架相结合&#xff0c;可以构建出强大且可扩展的Web应用。本文将详细介绍如何将Vue.js与Fla…

苍穹外卖学习笔记(十四)

3. 根据分类ID查询套餐 SetmealController package com.sky.controller.user;import com.sky.constant.StatusConstant; import com.sky.entity.Setmeal; import com.sky.result.Result; import com.sky.service.SetmealService; import io.swagger.annotations.Api; import …

【css】常见布局概述

本文将对css的常见布局方案进行概述&#xff0c;给大家提供系统化的布局解决方案参考。 一、流式布局 二、浮动布局 三、定位布局 四、弹性布局 五、网格布局 一、流式布局 顾名思义&#xff0c;该布局基于dom的文档流进行布局&#xff0c;是最常用、最原始的布局方式。 …

SSH 远程连接到 Linux 服务器上的 SQLite

通过 SSH 远程连接到 Linux 服务器上的 SQLite 数据库文件的流程&#xff0c;可以分为以下几个步骤&#xff1a; 通过 SSH 连接到远程 Linux 服务器。在远程服务器上执行 SQLite 命令行工具&#xff0c;操作数据库文件。在本地使用工具&#xff0c;通过 SSH 隧道间接访问远程的…

后端开发面试题7(附答案)

前言 在下首语言是golang,所以会用他作为示例。 原文参见 @arialdomartini的: Back-End Developer Interview Questions 逻辑和算法相关问题 1. 只用LIFO栈如何构造一个FIFO队列?只用FIFO队列如何构造一个LIFO栈? 使用两个栈(LIFO栈)来模拟FIFO队列: 在Go语言中,可以…