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 javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
@RestController
@Validated
public class MyController {
@PostMapping("/submit")
public String submitData(@Valid @RequestBody MyData myData) {
// 验证通过后的逻辑处理
return "Data is valid!";
}
static class MyData {
@NotNull
private Integer id;
@NotBlank
private String name;
// 省略 getter 和 setter 方法
}
}
这个例子中,我们定义了一个简单的Spring Boot控制器MyController
,它有一个接收MyData
类型对象的submitData
方法。MyData
类包含两个属性:id
和name
,分别使用了@NotNull
和@NotBlank
注解进行非空校验。当客户端向/submit
端点发送POST请求时,传递的JSON对象会被自动绑定到MyData
实例上,并通过@Valid
进行参数校验。如果验证失败,Spring Boot会自动返回400(Bad Request)响应。