首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

SpringBoot 中快速优雅进行字段校验

前段时间提交代码审核,同事提了一个代码规范缺陷:参数校验应该放在controller层。到底应该如何做参数校验呢?

| Controller层 VS Service层

去网上查阅了一些资料,一般推荐与业务无关的放在Controller层中进行校验,而与业务有关的放在Service层中进行校验。

那么如何将参数校验写的优雅美观呢,如果都是if - else,就感觉代码写的很low,还好有轮子可以使用。

| 常用校验工具类

使用Hibernate Validate

引入依赖

常用注解说明

使用姿势

需要搭配在Controller中搭配@Validated或@Valid注解一起使用,@Validated和@Valid注解区别不是很大,一般情况下任选一个即可,区别如下:

虽然@Validated比@Valid更加强大,在@Valid之上提供了分组功能和验证排序功能,不过在实际项目中一直没有用到过。

Hibernate-validate框架中的注解是需要加在实体中一起使用的。

~定义一个实体:

说明:message字段为不符合校验规则时抛出的异常信息。

~Controller层中的方法:

说明:在校验的实体DataSetSaveVO旁边添加@Valid或@Validated注解。

使用commons-lang3

引入依赖

常用方法说明

测试代码

| 自定义注解

当上面的方面都无法满足校验的需求以后,可以考虑使用自定义注解。如何写一个自定义注解,可以参考本文作者之前的文章:《Spring自定义注解从入门到精通》。

  • 发表于:
  • 原文链接https://page.om.qq.com/page/OwEQe_Ftdwc8RXRiYYKLTTMg0
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券