如果你没有优雅地用过参数校验,那么你的参数校验代码一定是
是不是很不优雅
今天,我们优雅地进行参数校验
第一:引依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
//里面包含了很多包,其中就包括我们需要的jakarta包,还有接口调试的swagger包
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-spring-boot-starter</artifactId>
<version>3.0.2</version>
</dependency>
第二:类上加注解@Validated,告诉spring,类里面有方法要参数校验
第三,写参数校验代码
1.如果参数为包装类型
2.如果参数为对象
在类的属性定义加上参数校验信息
在接口上加上@Validated注解,告诉spring这个参数我要进行参数校验。
注意,在内嵌tomcat版本为10.几的springboot工程,这个@NotNull注解一定得是jakarta下的
如果是javax下的,参数校验不起作用,具体可以看我之前文章
第四:异常处理
如果参数不合法,会抛异常
然后我们可以通过e.getMessage()获取这个异常信息,即”id 不能为空“
结语:知识是无穷无尽的
我讲的都是最最简单的参数校验方法,更深层次的还有分组的参数校验,notblank,notnull,notempty,notblank专为string类型等等,要深入了解,可去看看其他博客