JSR303 JAVA语言数据校验

JSR303是JAVA EE 6的Bean Validation规范,提供元数据模型和API进行数据校验。本文介绍了JSR303的简介、常用校验注解,以及详细的操作步骤,包括添加依赖、使用@Valid注解和自定义校验规则。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.简介

JSR是Java Specification Requests的缩写,意思是Java 规范提案

JSR-303 是JAVA EE 6 中的一项子规范,叫做Bean Validation

即,JSR 303,Bean Validation规范 ,为Bean验证定义了元数据模型和API.。默认的元数据模型是通过Annotations来描述的,但是也可以使用XML来重载或者扩展。

2.常用校验注解

分为两类:Bean Validation 中内置的 constraint

                  Hibernate Validator 附加的 constraint

Bean Validation 中内置的 constraint       
@Null   被注释的元素必须为 null       
@NotNull    被注释的元素必须不为 null       
@AssertTrue 被注释的元素必须为 true       
@AssertFalse 被注释的元素必须为 false       
@Min(value)     被注释的元素必须是一个数字,其值必须大于等于指定的最小值       
@Max(value)     被注释的元素必须是一个数字,其值必须小于等于指定的最大值       
@DecimalMin(value)  被注释的元素必须是一个数字,其值必须大于等于指定的最小值       
@DecimalMax(value)  被注释的元素必须是一个数字,其值必须小于等于指定的最大值       
@Size(max=, min=)   被注释的元素的大小必须在指定的范围内       
@Digits (integer, fraction)     被注释的元素必须是一个数字,其值必须在可接受的范围内       
@Past   被注释的元素必须是一个过去的日期       
@Future     被注释的元素必须是一个将来的日期       
@Pattern(regex=,flag=)  被注释的元素必须符合指定的正则表达式       
Hibernate Validator 附加的 constraint       
@NotBlank(message =)   验证字符串非null,且长度必须大于0       
@Email  被注释的元素必须是电子邮箱地址       
@Length(min=,max=)  被注释的字符串的大小必须在指定的范围内       
@NotEmpty   被注释的字符串的必须非空       
@Range(min=,max=,message=)  被注释的元素必须在合适的范围内 

3. 使用步骤

3.1 pom坐标(导入依赖)

注意:上面的坐标是规则,下面的坐标是实现,如果只有规则没有实现,则校验规则不会生效

	    <dependency>
            <groupId>javax.validation</groupId>
            <artifactId>validation-api</artifactId>
            <version>2.0.1.Final</version>
        </dependency>
          <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-validator</artifactId>
            <version>5.2.0.Final</version>
        </dependency>
3.2 在需要校验的实体类上加上 @Valid 注解
@GetMapping("/{id}")
    public R<AppointmentHelpVo> getInfo(@NotNull(message = "主键不能为空") @PathVariable Long id) {
        return R.ok(iAppointmentHelpService.queryById(id));
    }
3.3 按照需求进行自定义校验规则
/**
     * 学生姓名
     */
    @NotBlank(message = "学生姓名不能为空", groups = { AddGroup.class, EditGroup.class })
    private String name;

    /**
     * 学生邮箱
     */
    @NotBlank(message = "学生邮箱不能为空", groups = { AddGroup.class, EditGroup.class })
    @Email(message = "邮箱格式不正确")
    private String email;

    /**
     * 学生微信
     */
    @NotBlank(message = "学生微信不能为空", groups = { AddGroup.class, EditGroup.class })
    private String wechat;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值