KyleWang
发布于 2024-03-03 / 46 阅读
0
0

SpringBoot(一)参数校验 Spring Validation 以及全局异常处理器

SpringBoot

一、参数校验 Spring Validation

1、导入validation坐标

2、在参数上添加@Pattern注解,指定校验规则

3、在Controller类上添加@Validated注解

@RestController
@RequestMapping("/user")
@Validated
public class UserController {

    @Autowired
    private UserService userService;

    @PostMapping("/register")
    public Result register(@Pattern(regexp = "^\\S{5,16}$") String username,@Pattern(regexp = "^\\S{5,16}$") String password){
        //查询用户
        User user = userService.findByUserName(username);
        if (user == null){
            //注册
            userService.register(username,password);
            return Result.success();
        }else {
            //占用
            return Result.error("用户名已被占用");
        }


    };
}

4、在全局异常处理器中处理参数校验失败的异常

@RestControllerAdvice
public class GlobalExceptionHandler {

    @ExceptionHandler(Exception.class)
    public Result handleException(Exception e){
        e.printStackTrace();
        return Result.error(StringUtils.hasLength(e.getMessage())?e.getMessage():"操作失败");
    }
}


评论