参数校验优雅实践

本文介绍了如何利用HibernateValidator进行参数校验,并探讨了如何在业务系统中实现优雅的参数校验,包括自定义校验注解和错误信息动态管理。此外,还分享了防御性编程的原则,强调了保护系统免受无效数据影响的重要性。
摘要由CSDN通过智能技术生成

简介: 希望本文可以帮助到大家,可以用一种优雅方式接入参数校验,保护系统解放自身,从你我做起!

 

image.png


作者 | 中野
来源 | 阿里技术公众号

 

一 不厌其烦的 if else?

参数校验,为了保护自己的代码,一般都会在开发中假设所有的参数都是不可靠的。针对所有的参数校验场景自己一次进行判断及错误信息的提示。

例如:

if(a.size > 10 && a.size < 100){
    Result result = Reuslt.fail("非法参数size , 请检查输入!") ;
    return result;
}

if(xxx)
    return xxx ;

还有一种case,重一点的业务参数校验,有时候也会被不厌其烦地校验,散落在各个子系统或者系统的各处模块代码中。

例如:

if(!validItem(itemId)){
    Result result = Reuslt.fail("不存在的商品id , 请检查输入!") ;
    return result;
}
private boolean validItem(itemId){
    // RPC getItem
    
    
    // 是否空判断
    
    return item != null;
}

针对以上的场景,本文探讨一下如何优雅地在业务系统中做参数校验,分享构建通用校验模块的一些实践。

二 业内框架 hibernate validator

1 简介

JSR提供了一套Bean校验规范的API,维护在包javax.validation.constraints下。该规范使用属性或者方法参数或者类上的一套简洁易用的注解来做参数校验。开发者在开发过程中,仅需在需要校验的地方加上形如@NotNull, @NotEmpty , @Email的注解,就可以将参数校验的重任委托给一些第三方校验框架来处理。

引自网络:

JSR-303 是 JAVA EE 6 中的一项子规范,叫做 Bean Validation,官方参考实现是Hibernate Validator。

此实现与 Hibernate ORM 没有任何关系。JSR 303 用于对 Java Bean 中的字段的值进行验证。

Spring MVC 3.x 之中也大力支持 JSR-303,可以在控制器中对表单提交的数据方便地验证。

注:可以使用注解的方式进行验证。

接入validation api及hibernate validator后,做普通的参数校验简单到不行:

 

image.png

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值