Spring Validation如何实现后端数据校验?

2026-05-24 09:411阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计709个文字,预计阅读时间需要3分钟。

Spring Validation如何实现后端数据校验?

前言:最近看到很多童鞋在项目中请求参数的校验,都用if来判断各个参数的特性,比如:

Spring Validation如何实现后端数据校验?

if (StringUtils.isBlank(username)) { return RR.exception(账号不能为空);}if (StringUtils.isBlank(password)) { return RR.exception(密码不能为空);}

前言

最近看到很多童鞋在项目中的对请求参数的校验都用的if来判断各参数的属性,如:

if(StringUtils.isBlank(username)){ return RR.exception("账号不能为空"); } if(StringUtils.isBlank(password)){ return RR.exception("密码不能为空"); } if(StringUtils.isBlank(realName)){ return RR.exception("姓名不能为空"); } ......

每个参数都需要这样一个个去校验null,返回对应信息,代码就像叠罗汉一样~~,在此,楼主强烈推荐一个神器:Validation,有了它,再也不用这样去校验参数啦,可以让我们在项目中不用太关注其他东西,专注于业务逻辑的编写。

引入核心依赖

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>

使用示例-添加用户

需要校验的实体类,在此使用了一些常用的校验注解,基本上能够见名知意,每个注解中都有message属性,就是校验不通过后的提示信息

@Data @AllArgsConstructor @NoArgsConstructor @ApiModel(value = "Account", description = "用户实体类") public class Account implements Serializable { private static final long serialVersionUID = -6310331730721778951L; private Long id; @NotBlank(message = "用户名不能为空") @Length(max = 10, message = "用户名最长为10位") private String name; @Pattern(regexp = PatternUtil.PASSWORDREGEX, message = "密码为6-20位数字加字母组合") private String pwd; @NotBlank(message = "姓名不能为空") @Length(max = 8, message = "姓名最长为8位") private String realName; @Pattern(regexp = PatternUtil.PHONENOREGEX, message = "手机号码格式不正确") private String phone; @NotNull(message = "用户性别不能为空") @Max(value = 1,message = "性别 0:男 1:女") @Min(value = 0,message = "性别 0:男 1:女") private Integer sex; @NotNull(message = "用户状态不能为空") @Max(value = 1,message = "用户状态 0:启用 1:禁用") @Min(value = 0,message = "用户状态 0:启用 1:禁用") private Integer status; @Length(max = 200, message = "备注最长为200个字符") private String rmk; }

controller接口,注意在接收参数前需加上@Validated注解,这样就会逐个去校验实体类中需要加了校验注解的的属性,完全通过才进入下一步业务处理,否则抛出MethodArgumentNotValidException异常,在这里我们直接将异常抛出,交给全局异常处理类来处理。

@SysLog(menu = "用户管理", function = "添加",filterParams = {"pwd","password","salt"}) @PermissionCheck("account:manager:add") @PostMapping(value = "/add", produces = BaseConsts.REQUEST_HEADERS_CONTENT_TYPE) @ApiOperation(value = "用户管理-添加用户接口", notes = "用户管理-添加用户接口", www.jb51.net/article/157604.htm

到此这篇关于Spring-Validation 后端数据校验的实现的文章就介绍到这了,更多相关Spring Validation数据校验内容请搜索易盾网络以前的文章或继续浏览下面的相关文章希望大家以后多多支持易盾网络!

标签:

本文共计709个文字,预计阅读时间需要3分钟。

Spring Validation如何实现后端数据校验?

前言:最近看到很多童鞋在项目中请求参数的校验,都用if来判断各个参数的特性,比如:

Spring Validation如何实现后端数据校验?

if (StringUtils.isBlank(username)) { return RR.exception(账号不能为空);}if (StringUtils.isBlank(password)) { return RR.exception(密码不能为空);}

前言

最近看到很多童鞋在项目中的对请求参数的校验都用的if来判断各参数的属性,如:

if(StringUtils.isBlank(username)){ return RR.exception("账号不能为空"); } if(StringUtils.isBlank(password)){ return RR.exception("密码不能为空"); } if(StringUtils.isBlank(realName)){ return RR.exception("姓名不能为空"); } ......

每个参数都需要这样一个个去校验null,返回对应信息,代码就像叠罗汉一样~~,在此,楼主强烈推荐一个神器:Validation,有了它,再也不用这样去校验参数啦,可以让我们在项目中不用太关注其他东西,专注于业务逻辑的编写。

引入核心依赖

<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>

使用示例-添加用户

需要校验的实体类,在此使用了一些常用的校验注解,基本上能够见名知意,每个注解中都有message属性,就是校验不通过后的提示信息

@Data @AllArgsConstructor @NoArgsConstructor @ApiModel(value = "Account", description = "用户实体类") public class Account implements Serializable { private static final long serialVersionUID = -6310331730721778951L; private Long id; @NotBlank(message = "用户名不能为空") @Length(max = 10, message = "用户名最长为10位") private String name; @Pattern(regexp = PatternUtil.PASSWORDREGEX, message = "密码为6-20位数字加字母组合") private String pwd; @NotBlank(message = "姓名不能为空") @Length(max = 8, message = "姓名最长为8位") private String realName; @Pattern(regexp = PatternUtil.PHONENOREGEX, message = "手机号码格式不正确") private String phone; @NotNull(message = "用户性别不能为空") @Max(value = 1,message = "性别 0:男 1:女") @Min(value = 0,message = "性别 0:男 1:女") private Integer sex; @NotNull(message = "用户状态不能为空") @Max(value = 1,message = "用户状态 0:启用 1:禁用") @Min(value = 0,message = "用户状态 0:启用 1:禁用") private Integer status; @Length(max = 200, message = "备注最长为200个字符") private String rmk; }

controller接口,注意在接收参数前需加上@Validated注解,这样就会逐个去校验实体类中需要加了校验注解的的属性,完全通过才进入下一步业务处理,否则抛出MethodArgumentNotValidException异常,在这里我们直接将异常抛出,交给全局异常处理类来处理。

@SysLog(menu = "用户管理", function = "添加",filterParams = {"pwd","password","salt"}) @PermissionCheck("account:manager:add") @PostMapping(value = "/add", produces = BaseConsts.REQUEST_HEADERS_CONTENT_TYPE) @ApiOperation(value = "用户管理-添加用户接口", notes = "用户管理-添加用户接口", www.jb51.net/article/157604.htm

到此这篇关于Spring-Validation 后端数据校验的实现的文章就介绍到这了,更多相关Spring Validation数据校验内容请搜索易盾网络以前的文章或继续浏览下面的相关文章希望大家以后多多支持易盾网络!

标签: