Hibernate-validate 参数校验

刚才在实现了注册功能的时候,发现了一个问题: 由于服务器端没有进行数据校验, 容易被绕过前端直接发送请求.
因此使用Hibernate-Validator框架完成数据校验:

依赖

 <dependency>
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-validator</artifactId>
            <version>5.2.1.Final</version>
        </dependency>

Hibernate-Validator 相关概念:

  1. hibernate Validator 是 Bean Validation 的参考实现 。
  2. Hibernate Validator 提供了 JSR 303 规范中所有内置 constraint(约束) 的实现,除此之外还有一些附加的 constraint。
  3. 在日常开发中,Hibernate Validator经常用来验证bean的字段,基于注解,方便快捷高效。

常用注解如下:

constraintdetail
@valid被注释对象是一个对象, 检查该对象所有子弹
@Null被注释字段必须为空
@NotNull被注释字段必须不为空
@AsserTrue被注释字段为true
@AsserFalse被注释字段为false
@Min(value)被注释字段为number,大于等于value
@Max(value)被注释字段为number,小于等于value
@DecimalMin(value)被注释的元素必须是一个数字,其值必须大于等于指定的最小值
@DecimalMax(value)被注释的元素必须是一个数字,其值必须小于等于指定的最大值
@Size(max, min)被注释的元素的大小必须在指定的范围内
@Pattern(value)被注释的元素必须符合指定的正则表达式
@Length被注释的字符串的大小必须在指定的范围内
@NotEmpty被注释的字符串的必须非空
@CreditCardNumber被注释的字符串必须通过Luhn校验算法,银行卡,信用卡等号码一般都用Luhn计算合法性

demo

@Table(name = "tb_user")
public class User {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    @Length(min = 4, max = 30, message = "用户名长度必须在4-30位之间")
    private String username;// 用户名

    @JsonIgnore  // 在json序列化为对象时,不会把该字段返回
    @Length(min = 4, max = 30, message = "用户名长度必须在4-30位之间")
    private String password;// 密码

    @Email
    private String email;// 电话
   }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值