Bean属性校验

JSR303是一个用于数据校验的规范,如@Max和@Min等注解用于定义校验规则。在SpringBoot中,引入validation-api和HibernateValidator实现该规范。通过在Bean上使用@Validated开启校验,例如在DataSourceConfigBean中对timeout属性进行最大和最小值限制。这样在属性注入时会自动进行校验。
摘要由CSDN通过智能技术生成

Servlet是一个规范,Tomcat实现的

JDBC是一个规范,各个厂商实现的

JSR303也是一个规范,有人提供实现

我们只需要面向接口编程即可。

一般来说,以javax开头的groupId,都是规范

JSR303提供规范,其余框架实现规范。

  1. 添加JSR303规范,在SpringBoot中不用给出版本号
<dependency>
	<groupId>javax.validation</groupId>
	<artifactId>validation-api</artifactId>
</dependency>
  1. 添加实现技术
<dependency>
    <groupId>org.hibernate.validator</groupId>
    <artifactId>hibernate-validator</artifactId>
</dependency>

在需要校验的Bean上开启校验功能@Validated,然后使用JSR303规范中的注解去定义校验规则就好了。

@Data
@Component
@ConfigurationProperties(prefix = "my-server")
@Validated
public class DataSourceConfigBean {
    private String url;

    @Max(value = 5000, message = "最大不能超过5000")
    @Min(value = 500, message = "最小不能低于500")
    private int timeout;
}

当属性注入时,就会进行属性校验,测试一下

image-20230621135056939

关于常用的校验规则有哪些?可以进入到JSR303注解包javax.validation.constraints下查看,这里给出一些常用的。

JSR303中常用的注解有:

注解说明
@AssertFalse断言为false
@AssertTrue断言为true
@Max整型最大值限制
@Min整型最小值限制
@DecimalMax适用于BigDecimal和String类型的属性
@Null值为null
@NotNull不为Null
@NotBlank不为空
@Pattern正则校验
@Digits是数字
@Email是邮箱
@Negative是负数
@Postiive是正数
@Future未来的时间
@Past过去的时间
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值