1.引入jar包
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
<!-- fastjson -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>fastjson</artifactId>
<version>1.2.75</version>
</dependency>
2. 代码增加校验注解
UserController 的方法增加 @Validated 注解
@PostMapping("/user/save")
public Map<String,Object> save(@Validated @RequestBody UserDTO user){
Map<String,Object> map = new HashMap<>();
map.put("code",200);
map.put("data",mybatisPlusDemoService.save(user));
return map;
}
UserDTO增加@NotNull/@Max/@Min 一系列注解
@NotNull(message = "名称不能为空")
private String name;
/**
* 年龄
*/
@NotNull(message = "年龄不能为空")
@Min(value = 20,message = "年龄必须大于20")
@Max(value = 100,message = "年龄必须小于100")
private Integer age;
/**
* 性别
*/
@NotNull(message = "性别不能为空")
private Integer sex;
3. 增加异常拦截处理类ExceptionResolver
package com.leeong.demo.handler;
import com.alibaba.fastjson.support.spring.FastJsonJsonView;
import org.springframework.web.bind.MethodArgumentNotValidException;
import org.springframework.web.bind.annotation.ControllerAdvice;
import org.springframework.web.bind.annotation.ExceptionHandler;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.servlet.ModelAndView;
import java.util.HashMap;
import java.util.Map;
/**
* @author leeong
*/
@ControllerAdvice
@ResponseBody
public class ExceptionResolver {
@ExceptionHandler(value = Exception.class)
@ResponseBody
public ModelAndView resolveException(Exception e) {
ModelAndView modelAndView = new ModelAndView();
FastJsonJsonView fastJsonJsonView = new FastJsonJsonView();
if (e instanceof MethodArgumentNotValidException){
Map<String,Object> map = new HashMap<>();
map.put("code",500);
map.put("msg",((MethodArgumentNotValidException) e).getBindingResult().getAllErrors().get(0).getDefaultMessage());
fastJsonJsonView.setAttributesMap(map);
}
modelAndView.setView(fastJsonJsonView);
return modelAndView;
}
}
4. 接口调用和结果展示
5.总结
- 引入validatoin,fastjson jar包
- controller/dto 加入相关注解
- 定义错误统一拦截处理类
上一篇 mybatis-plus 分页、复杂条件查询
下一篇 SpringBoot整合SpringSecurity 入门篇