Springboot @Validated注解详细说明
@Validated
是 Spring Framework 中的一个注解,它是 @Valid
注解的一个变体,专门用于 Spring 环境。@Validated
注解可以提供分组验证、注解级别的缓存以及方法级别的验证支持。
@Validated
注解可以指定验证的分组,这对于实现例如创建和更新用户时使用不同的验证规则非常有用。此外,@Validated
还可以与 javax.validation
中的 Bean 验证注解(如 @NotNull
、@Size
等)一起使用来确保 Bean 的字段满足特定的业务规则。
使用 @Validated
注解时,你可以指定如下两个元素:
value
:指定一组分组类。annotation
:指定需要被注解的分组。
下面是一个使用 @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 MyController {
@PostMapping("/user")
public String createUser(@RequestBody @Validated User user) {
return "User created";
}
}
class User {
@NotNull(message = "The name cannot be null")
private String name;
@Size(min = 10, message = "The address must contain at least 10 characters")
private String address;
// getters and setters
}
在这个例子中,@Validated
注解被用于 MyController
类,它确保 User
对象在被传递到 createUser
方法之前是有效的。User
类的 name
和 address
字段使用了 @NotNull
和 @Size
注解,这些注解来自 javax.validation.constraints
包,以确保它们满足特定的业务规则。如果验证失败,Spring Framework 会自动处理异常并返回相应的错误信息。
评论已关闭