@Size、@Max、@Min、@Length、注解的含义和区别

作者: adm 分类: java 发布时间: 2023-11-15

@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) {
        // 处理请求
    }
}

如果觉得我的文章对您有用,请随意赞赏。您的支持将鼓励我继续创作!