SpringBoot整合校验框架validation

本文详细介绍了在Spring Boot项目中如何整合Hibernate Validation进行数据校验,包括使用原生注解、自定义校验规则以及统一异常处理。内容涵盖了@Validated注解的使用、自定义校验注解@FlagValidator和@PhoneValidator的实现,以及常见校验注解的解释。
摘要由CSDN通过智能技术生成

本文介绍在Spring Boot中实现对请求的数据进行校验。数据校验常用到概念:
• JSR303/JSR-349: JSR303是一项标准,只提供规范不提供实现,规定一些校验规范即校验注解,如@Null,@NotNull,@Pattern,位于javax.validation.constraints包下。JSR-349是其的升级版本,添加了一些新特性。
• hibernate validation:hibernate validation是对这个规范的实现,并增加了一些其他校验注解,如@Email,@Length,@Range等等
• spring validation:spring validation对hibernate validation进行了二次封装,在springmvc模块中添加了自动校验,并将校验信息封装进了特定的类中
本文主要包括如下内容:
• 演示 spring boot validation 校验功能 + 自定义校验注解 + 统一异常处理 。

一:准备工作

   <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
   </dependency>

项目架子:
在这里插入图片描述
在这里插入图片描述

二:校验规则

2.1 使用原生注解-swagger注解可以忽略

entity中实体代码

其中 @FlagValidator(values = “1,2,3”) 和 @PhoneValidator 是自定义校验注解,自定义过程后面说。
其余注解都是自带的,关于自带注解有哪些,见文末的常用标签含义。

@Data
public class UserEntity implements Serializable {
   
    @NotEmpty(message = "姓名不能为空")
    private String name;
    @Min(value = 18 ,message = "未满18周岁请自觉离开。。。")
    @Max(value = 60,message = "您老身体可还吃得消?大于60岁自觉离开。")
    private int age;
    @Min(value = 666,message = "钱包够憋,不够¥666请自觉充值。")
    private double money;
    @FlagValidator(values = "1,2,3")
    private String flag;
    @Email(message = "请输入正确格式的邮箱。。")
    @NotEmpty(message = "邮箱不能为空哦!")
    private String email;
    @PhoneValidator
    private String phone;
}

校验对象:在Controller 中请求参数上添加@Validated ,在对应的实体字段上加校验注解即可。

@Api("UserController层")
@RequestMapping(value = "/UserController")
@RestController
public class UserController {
   
    @ApiOperation(value = "向user表插入数据")
    @PostMapping(value = {
   "/insetUser/"})
    public ResultMsg<UserEntity> insertUser(@Validated @RequestBody UserEntity userEntity) {
   
        return new ResultMsg<UserEntity>(
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值