实现注册功能时经常遇到参数校验的问题。
参数校验
- 引入依赖
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-validation</artifactId>
</dependency>
-
参数前添加注解,并指定校验规则
-
控制器类添加注解
@RestController
@RequestMapping("/user")
@Validated
public class UserController {@Autowiredprivate 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() : "操作失败");}
}