springboot自定义请求参数校验
时间: 2023-09-10 18:11:24 浏览: 308
在 Spring Boot 中,可以使用 Hibernate Validator 来进行请求参数校验。具体步骤如下:
1. 引入 Hibernate Validator 依赖:
```xml
<dependency>
<groupId>org.hibernate.validator</groupId>
<artifactId>hibernate-validator</artifactId>
<version>6.1.5.Final</version>
</dependency>
```
2. 在需要校验的请求参数实体类中添加校验注解,例如:
```java
public class User {
@NotBlank(message = "用户名不能为空")
private String username;
@NotBlank(message = "密码不能为空")
private String password;
@Email(message = "邮箱格式不正确")
private String email;
// 省略 getter 和 setter 方法
}
```
3. 在请求处理方法中添加 @Validated 注解,并在参数上添加 @Valid 注解,例如:
```java
@RestController
@RequestMapping("/user")
@Validated
public class UserController {
@PostMapping("/login")
public Result login(@RequestBody @Valid User user) {
// 处理登录逻辑
}
}
```
4. 当请求参数不符合校验规则时,会抛出 ConstraintViolationException 异常。可以在全局异常处理器中对该异常进行处理,例如:
```java
@RestControllerAdvice
public class GlobalExceptionHandler {
@ExceptionHandler(ConstraintViolationException.class)
public Result handleConstraintViolationException(ConstraintViolationException e) {
List<String> errorMessages = e.getConstraintViolations().stream()
.map(ConstraintViolation::getMessage)
.collect(Collectors.toList());
return Result.error(String.join(",", errorMessages));
}
}
```
这样就可以自定义请求参数校验了。
阅读全文