SpringBoot接口参数校验(jakarta.validation.constraints)
在Spring Boot中,你可以使用jakarta.validation.constraints
包中的注解来对接口参数进行验证。以下是一个简单的例子,演示如何使用@NotBlank
注解来验证一个字符串参数不为空白。
首先,确保你的项目中包含了Spring Boot的起步依赖以及validation的依赖,如下:
<!-- Spring Boot Starter -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- Bean Validation API -->
<dependency>
<groupId>jakarta.validation</groupId>
<artifactId>jakarta.validation-api</artifactId>
<version>2.0.2</version>
</dependency>
<!-- Hibernate Validator -->
<dependency>
<groupId>org.hibernate.validator</groupId>
<artifactId>hibernate-validator</artifactId>
<version>6.2.0.Final</version>
</dependency>
然后,在你的Controller中使用注解:
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;
import jakarta.validation.constraints.NotBlank;
@RestController
@Validated
public class MyController {
@PostMapping("/validate")
public String validateParameter(@RequestBody @Validated MyRequest request) {
return "Validation succeeded";
}
static class MyRequest {
@NotBlank(message = "The name cannot be blank")
private String name;
// Getter and setter
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
}
在上面的例子中,@Validated
注解被用于激活验证功能,@NotBlank
注解用于确保name
字段不为空白字符串。如果参数验证失败,Spring将会返回一个400 Bad Request响应,并包含验证错误信息。
评论已关闭