首页 文章资讯内容详情

Spring注解之@validated的使用

2026-06-01 4 花语

本文内容纲要:

-一基础使用 -二常用注解类型 -三嵌套校验 -四@pathvariable的校验

spring-boot中可以用@validated来校验数据,如果数据异常则会统一抛出异常,方便异常中心统一处理。

比如,我们判断一个输入参数是否合法,可以用如下方式

一基础使用

因为spring-boot已经引入了基础包,所以直接使用就可以了

1首先在controller上声明需要对数据进行校验 @RequestMapping(value="/url.json",method={RequestMethod.POST}) @ResponseBody @Transactional publicResult<?>xxmethod(@RequestBody@ValidatedXoPOxoPo) throwsParseException,UnsupportedEncodingException{}

2然后在bean上声明需要被校验的字段

@data publicclassXoPO{ @validated privateList<OrderPerson>personList; @NotNull @Size(max=32,message="codeisnull") privateStringcode; @NotBlank @Size(max=32,message="productisnull") privateStringproduct; }

而后,当输入不能满足条件是,就会抛出异常,而后统一由异常中心处理

也可以用BindingResult,但是用了这个后就必须手动处理异常,侵入了正常的逻辑过程,并不推荐

二常用注解类型

注意,不要错用了异常类型,比如在int上不可用@size

常用注解如下

@AssertFalse校验false @AssertTrue校验true @DecimalMax(value=,inclusive=)小于等于value, inclusive=true,是小于等于 @DecimalMin(value=,inclusive=)与上类似 @Max(value=)小于等于value @Min(value=)大于等于value @NotNull检查Null @Past检查日期 @Pattern(regex=,flag=)正则 @Size(min=,max=)字符串,集合,map限制大小 @Validate对po实体类进行校验

三嵌套校验

如果一个类中包含了另外一个实体类,那么在上面加上@Validated即可,比如上面的

publicclassXoPO{ @validated privateList<PersonDetailPO>personList; }

四@pathvariable的校验

spring-boot可能目前并不支持对参数的验证:https://jira.spring.io/browse...

publicResult<?>xoById(@NotNull@NotBlank@Size(min=10,max=32)@PathVariable(value="accountId")Stringid){}

但目前还无法抛出异常,可能在spring的下一个版本中解决,或者不用@Pathvariable,而在service中

ClassXoService{ publicxoMethon(@NotNullStringid){ } }

来解决

【转载】https://segmentfault.com/a/1190000011712893

本文内容总结:一基础使用,二常用注解类型,三嵌套校验,四@pathvariable的校验,

原文链接:https://www.cnblogs.com/liaojie970/p/9036349.html