9:参数校验-Java Spring

简介: 9:参数校验-Java Spring

9.1 参数校验介绍

参数校验即保证数据的合法性,JCP组织定义了一个标准来规范化这个任务操作,即Java Validation API

Spring MVC 有两种方法可以验证输入,利用 Spring 自带的Validated框架或JSR 303 实现

9.2 JSR303

JSR303(Java Specification Requests)即Java 规范请求,是一套JavaBean参数校验的标准,

它定义了很多常用的校验注解,可直接将注解加在JavaBean的属性上,在需要校验的时候实现服务器端的数据验证

JSR303 是JavaEE 6 中的一项子规范,叫Bean Validation,Spring 的 DataBinder 在进行数据绑定时,Spring MVC同时支持JSR303标准的校验框架,通过使用注解的方式进行验证规则的添加


9.3 Hibernate Validator

Hibernate Validator 是 Bean Validation 的参考实现 . Hibernate Validator 提供了 JSR 303 规范中所有内置 constraint 和一些附加实现

Spring 本身没有提供 JSR303 的实现,Hibernate Validator 实现了 JSR303,所以必须在项目中加入 Hibernate Validator 库

Hibernate Validator提供的校验注解

注解 说明
@NotNull/@Null 验证注解的元素值不是/是null
@AssertFalse/@AssertTrue 验证注解的元素值是false/true
@Max(value)/@Min(value) 验证注解的元素大于/小于值(value)
@Past/@Future 验证注解的元素比当前日期早/晚
@Email 验证注解的元素必须是Email
@NotEmpty 验证注解的元素值不为null,但长度不能为0
@NotBlank 验证注解的元素值不为null,但去除字符串的空格后长度不能为0,只应用于字符串

9.4 参数校验依赖引入

Springboot项目引入spring-boot-starter-web会默认引入hibernate-validator

<dependency>
  <groupId>org.hibernate</groupId>
  <artifactId>hibernate-validator</artifactId>
  <version>6.2.3.Final</version>
</dependency>

例如导入参数校验依赖后,想要验证用户名和密码不为空

  @NotBlank(message = "用户名不能为空")
    @Size(min=2,max=12,message="用户名的长度在2~12之间")
    private String username;
    @NotBlank(message = "密码不能为空")
    private String password;


目录
相关文章
|
4天前
|
Java Spring
Spring Boot脚手架集成校验框架
Spring Boot脚手架集成校验框架
11 0
|
5天前
|
开发框架 Java 开发者
Spring Boot接收参数的多种方式
【4月更文挑战第20天】
11 0
|
6天前
|
Java Nacos 开发者
Java从入门到精通:4.2.1学习新技术与框架——以Spring Boot和Spring Cloud Alibaba为例
Java从入门到精通:4.2.1学习新技术与框架——以Spring Boot和Spring Cloud Alibaba为例
|
6天前
|
Dubbo Java 应用服务中间件
Java从入门到精通:3.2.2分布式与并发编程——了解分布式系统的基本概念,学习使用Dubbo、Spring Cloud等分布式框架
Java从入门到精通:3.2.2分布式与并发编程——了解分布式系统的基本概念,学习使用Dubbo、Spring Cloud等分布式框架
|
6天前
|
开发框架 前端开发 安全
Java从入门到精通:2.2.2学习使用Spring框架进行Web应用开发
Java从入门到精通:2.2.2学习使用Spring框架进行Web应用开发
|
6天前
|
存储 Java 测试技术
一文搞清楚Java中的方法、常量、变量、参数
在JVM的运转中,承载的是数据,而数据的一种变现形式就是“量”,量分为:**常量与变量**,我们在数学和物理学中已经接触过变量的概念了,在Java中的变量就是在程序运行过程中可以改变其值的量。
14 0
|
10天前
|
JSON Java 数据格式
Spring Boot实现各种参数校验
这些是Spring Boot中实现参数校验的一些常见方法,你可以根据项目需求选择适合的方式来进行参数校验。
13 0
|
12天前
|
Java 关系型数据库 MySQL
一套java+ spring boot与vue+ mysql技术开发的UWB高精度工厂人员定位全套系统源码有应用案例
UWB (ULTRA WIDE BAND, UWB) 技术是一种无线载波通讯技术,它不采用正弦载波,而是利用纳秒级的非正弦波窄脉冲传输数据,因此其所占的频谱范围很宽。一套UWB精确定位系统,最高定位精度可达10cm,具有高精度,高动态,高容量,低功耗的应用。
一套java+ spring boot与vue+ mysql技术开发的UWB高精度工厂人员定位全套系统源码有应用案例
|
12天前
|
人工智能 监控 安全
Java+Spring Cloud +Vue+UniApp微服务智慧工地云平台源码
视频监控系统、人员实名制与分账制管理系统、车辆管理系统、环境监测系统、大型设备监测(龙门吊、塔吊、升降机、卸料平台等)、用电监测系统、基坑监测系统、AI算法分析(安全帽佩戴、火焰识别、周界报警、人员聚众报警、升降机超载报警)、安全培训、设备监测。
20 4
|
13天前
|
负载均衡 Java 开发者
细解微服务架构实践:如何使用Spring Cloud进行Java微服务治理
【4月更文挑战第17天】Spring Cloud是Java微服务治理的首选框架,整合了Eureka(服务发现)、Ribbon(客户端负载均衡)、Hystrix(熔断器)、Zuul(API网关)和Config Server(配置中心)。通过Eureka实现服务注册与发现,Ribbon提供负载均衡,Hystrix实现熔断保护,Zuul作为API网关,Config Server集中管理配置。理解并运用Spring Cloud进行微服务治理是现代Java开发者的关键技能。