【SpringBoot】参数校验及异常处理

实现注册功能时经常遇到参数校验的问题。

【SpringBoot】参数校验及异常处理_第1张图片

参数校验

  1. 引入依赖
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-validation</artifactId>
</dependency>
  1. 参数前添加注解,并指定校验规则

  2. 控制器类添加注解

@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 u = userService.findByUserName(username);
        if (u == null) {
            userService.register(username, password);
            return Result.success();
        } else {
            return Result.error("用户名已被占用");
        }

    }
}

参数校验失败异常处理

@RestControllerAdvice
public class GlobalExceptionHandler {
    @ExceptionHandler(Exception.class)
    public Result handleException(Exception e) {
    	// 输出错误信息到控制台
        e.printStackTrace();
        return Result.error(StringUtils.hasLength(e.getMessage()) ? e.getMessage() : "操作失败");
    }
}

【SpringBoot】参数校验及异常处理_第2张图片

你可能感兴趣的:(SpringBoot,spring,boot,后端,java)