在开发过程中,前端调用接口之前会判断必要的参数是否有值。但是这个情况只有前端判断是不可以的。还要在后端接口中作判断。
我之前就是直接在接口中写if判断,判断必要的参数是否为空或者null,再执行后边的逻辑。
最近在查找资料的时候,发现Springboot有一个参数校验框架Validation,这个玩意很好用。有了他我就不需要在接口中写if判断了~
一:引入pom依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
二:在controller中使用
1:在类上添加注解@Validated
2:在方法中进行校验
(1):原来我是这么写的:
/**
* 文章详情
* @param article_id
* @param request
* @return
* @throws Exception
*/
@GetMapping("article/getArticleDetail")
@MySentinelResource(resource = "getData", number = 1) // 自定义注解:sentinel限流
public Map<String, Object> getArticleDetail(@RequestParam(defaultValue = "") String article_id, HttpServletRequest request) throws Exception
{
// 参数判断
if(article_id == "" || article_id == null)
{
Map<String, Object> result = new HashMap<>(2);
result.put("code",-1);
result.put("msg","参数错误!");
return result;
}
Map<String, Object> result = articleService.getArticleDetail(article_id,request);
return result;
}
(2):使用Validation框架之后:
/**
* 文章详情
* @param article_id
* @param request
* @return
* @throws Exception
*/
@GetMapping("article/getArticleDeta