@Size、@Max、@Min、@Length、注解的含义和区别
@Min 验证 Number 和 String 对象是否大等于指定的值
@Max 验证 Number 和 String 对象是否小等于指定的值
@Size(min=, max=) 验证对象(Array,Collection,Map,String)长度是否在给定的范围之内
@Length(min=, max=) 验证字符串长度是否在给定的范围之内
区别:
@Size、@Max、@Min、这上注解是下面这个依赖包的,在SpringBoot中已经包含在starter-web中
<dependency> <groupId>javax.validation</groupId> <artifactId>validation-api</artifactId> <version>2.0.2</version> </dependency>
@Length、这个注解是下面这个依赖的,备注 springboot 2.3之之前自带hibernate-validator,之后移除了该包
两个包选其一
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-validation</artifactId> <version>2.7.5</version> </dependency> <!--<dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-validator</artifactId> <version>2.7.5</version> </dependency>-->
@Min 验证 Number 和 String 对象是否大等于指定的值
@Max 验证 Number 和 String 对象是否小等于指定的值
@Size(min=, max=) 验证对象(Array,Collection,Map,String)长度是否在给定的范围之内 ,由于@Size可适用各种类型的长度验证, 具有通用性,推荐使用 。
@Length(min=, max=) 验证字符串长度是否在给定的范围之内
max和min是对你填的“数字”是否大于或小于指定值,这个“数字”可以是number或者string类型。长度限制用length。
校验方式
在Controller中使用@Validated注解我们需要在Controller中使用@Validated注解来启用参数校验功能。这个注解可以放在Controller类上,也可以放在具体的方法上。@RestController
@RequestMapping("/users") @Validated public class UserController { @PostMapping public User addUser(@RequestBody @Valid User user) { // 处理请求 } }