10.0、springboot-JSR303校验以及遇到的异常报错解决

10.0、springboot-JSR303校验以及遇到的异常报错解决

        Springboot中可以用@validated来校验数据,如果数据异常则会统一抛出异常,方便异常中

心统一处理。我们这里来写个注解让我们的email属性只能支持Email格式

创建EmailTest.java实体类文件如下:

package com.hkl.pojo;

import org.hibernate.validator.constraints.Email;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.stereotype.Component;
import org.springframework.validation.annotation.Validated;

@Component
@Validated
@ConfigurationProperties(prefix = "email")
public class EmailTest {
    @Email(message = "邮箱输入格式有误!")
    private String email;

    public String getEmail() {
        return email;
    }

    public void setEmail(String email) {
        this.email = email;
    }

    @Override
    public String toString() {
        return "EmailTest{" +
                "email='" + email + '\'' +
                '}';
    }
}

Application.yaml文件如下:

email:
  email: 123@qq.com

email格式正确,运行成功!

如果输入的数据格式与邮箱不符,则会报以下错误:

解决报错问题:

在这里遇到了一个错误,就是不管我的邮箱数据格式怎么修改都不能正常运行一直报错

Error creating bean with name 'emailTest': Could not bind 这个错如下:

这是因为@Email注解的包导错了,我一开始导入的是这个包:

import javax.validation.constraints.Email;

然后导入的包改成这个,再把邮箱格式修改为xxx@xx.com即可正常运行

import org.hibernate.validator.constraints.Email;

这里是一些常用的数据校验注解如下所示:

空检查

@Null       验证对象是否为null

@NotNull    验证对象是否不为null, 无法查检长度为0的字符串

@NotBlank   检查约束字符串是不是Null还有被Trim的长度是否大于0,只对字符串,且会去掉前后空格.

@NotEmpty   检查约束元素是否为NULL或者是EMPTY.

    

Booelan检查

@AssertTrue     验证 Boolean 对象是否为 true  

@AssertFalse    验证 Boolean 对象是否为 false  

    

长度检查

@Size(min=, max=) 验证对象(Array,Collection,Map,String)长度是否在给定的范围之内  

@Length(min=, max=) string is between min and max included.

日期检查

@Past       验证 Date 和 Calendar 对象是否在当前时间之前  

@Future     验证 Date 和 Calendar 对象是否在当前时间之后  

@Pattern    验证 String 对象是否符合正则表达式的规则

.......等等

除此以外,我们还可以自定义一些数据校验规则

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值