java对嵌套对象进行参数检验_详解SpringBoot中的参数校验(项目实战)

本文介绍了如何在SpringBoot中使用Hibernate Validator进行参数校验,包括实体类上的注解使用,如@NotNull、@NotBlank等,以及如何处理校验异常,创建全局异常处理器。此外,还探讨了@Valid和@Validated在嵌套对象校验中的应用,提供了一个完整的项目实战案例。
摘要由CSDN通过智能技术生成

Java后端发工作中经常会对前端传递过来的参数做一些校验,在业务中还要抛出异常或者不断的返回异常时的校验信息,充满了if-else这种校验代码,在代码中相当冗长。例如说,用户注册时,会校验手机格式的正确性,用户名的长度等等。虽说前端也可以做参数校验,但是为了保证我们API接口的可靠性,以保证最终数据入库的正确性,后端进行参数校验不可忽视。 Hibernate Validator 提供了一种统一方便的方式,让我们快速的实现参数校验。

Hibernate Validator 使用注解,实现声明式校验。而在实现原理上,也是基于 Spring AOP 拦截,实现校验相关的操作。 javax.validation.constraints 包下,定义了一系列的约束( constraint )注解。文末会贴上一些常用的注解。 如果项目的框架是 spring boot 的话,在 spring-boot-starter-web 中已经包含了 Hibernate-validator 的依赖( 版本<2.3 )。 2.3 以后的版本中 spring-boot-starter-web 已经去除了这个依赖,需要手动引入 Hibernate-validator 依赖,并且有一些变化,因此 2.3.x 的版本暂不研究。本文使用的版本是 2.2.8 。

实战

1、创建实体类

package com.yese.pojo;

import lombok.AllArgsConstructor;

import lombok.Builder;

import lombok.Data;

import lombok.NoArgsConstructor;

import org.hibernate.validator.constraints.Length;

import javax.validation.constraints.*;

@Data

@Builder

@AllArgsConstructor

@NoArgsConstructor

public class User {

/**

* 用户ID

*/

@NotNull(message = "用户id不能为空")

private Long userId;

/**

* 用户名

*/

@NotBlank(message = "用户名不能为空")

@Length(max = 20, message = "用户名不能超过10个字符")

@Pattern(regexp = "^[\\u4E00-\\u9FA5A-Za-z0-9\\*]*$", message = "用户名限制:最多10字符,包含文字、字母和数字")

private String username;

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值