Spring Boot 实现各种参数校验,写得太好了,建议收藏!
在Spring Boot中实现各种参数验证,可以使用@Validated
注解和JSR-380(Hibernate Validator)提供的注解。以下是一个简单的例子:
首先,添加Hibernate Validator依赖到你的pom.xml
:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
然后,定义一个验证模型并使用JSR-380注解:
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
public class UserRequest {
@NotNull
private Long id;
@NotBlank
private String name;
@Min(18)
private int age;
// getters and setters
}
在Controller中使用@Validated
注解进行参数验证:
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RestController;
@RestController
@Validated
public class UserController {
@PostMapping("/user")
public String createUser(@RequestBody @Valid UserRequest userRequest) {
return "User created: " + userRequest.getName();
}
}
如果参数验证失败,Spring Boot会自动抛出MethodArgumentNotValidException
异常,并可以配置全局异常处理来返回友好的错误信息。
评论已关闭