spring中@validate注解使用

在 Java 中,我们可以使用注解和 validate 实现对实体类中字段的校验。其中,注解用来定义字段的约束条件,而 validate 则用来进行实际的校验操作。

常用的校验注解包括 @NotNull、@NotEmpty、@Size、@Min、@Max 等,它们可以帮助我们规定字段的约束条件,如非空、长度范围、最小值、最大值等。

下面是一个示例,演示了如何使用注解和 validate 对实体类中的字段进行校验:

import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;

public class User {

    @NotNull(message = "ID不能为空")
    @Min(1)
    private Long id;

    @NotEmpty(message = "用户名不能为空")
    private String username;

    @Size(min = 6, max = 20, message = "密码长度必须在6到20之间")
    private String password;

    // 其他字段省略

    // getter 和 setter 方法省略
}
验证实体
public void CheckUser(@Validated @RequestBody User user){
}

@NotEmpty 是 Bean Validation(JSR-380)规范中定义的一个校验注解,用于验证被注解的元素(字段、属性、方法参数等)不为 null 且不为空字符串。具体来说,@NotEmpty 注解适用于以下情况的校验:

字符串类型:

对于字符串类型的字段,@NotEmpty 可以用来确保该字符串不为 null 且长度不为 0。
集合类型:

对于集合类型(如 List、Set、Map 等),@NotEmpty 可以用来确保该集合不为 null 且至少包含一个元素。
数组类型:

对于数组类型,@NotEmpty 可以用来确保数组不为 null 且至少包含一个元素。
使用 @NotEmpty 注解可以有效地避免空指针异常以及空字符串或空集合带来的业务逻辑错误。在实际应用中,如果需要校验某个字段不能为空且不能为null,可以考虑使用 @NotEmpty 注解。
下面是一个示例,演示了如何在实体类中使用 @NotEmpty 注解进行校验:

public class User {
    @NotEmpty
    private String username;

    @NotEmpty
    private List<String> roles;
    
    // 省略 getter 和 setter 方法
}

在上述示例中,User 类中的 username 字段和 roles 字段分别使用了 @NotEmpty 注解,用于校验用户名和角色列表不能为空且不为null。当校验失败时,会抛出相应的校验异常。

@NotNull 是 Bean Validation(JSR-380)规范中定义的一个校验注解,用于验证被注解的元素(字段、属性、方法参数等)不为 null。具体来说,@NotNull 注解适用于以下情况的校验:

字段不能为空:
对于任何类型的字段,@NotNull 可以用来确保该字段不为 null。
方法参数不能为空:
在方法参数上使用 @NotNull 注解可以确保传入的参数不为 null。
通过在实体类的字段或方法参数上添加 @NotNull 注解,可以有效地避免空指针异常并提前捕获并处理空值问题。
下面是一个简单的示例,演示了如何在实体类中使用 @NotNull 注解进行校验:

public class User {
    @NotNull
    private Long id;

    @NotNull
    private String username;
    
    // 省略 getter 和 setter 方法
}

在上述示例中,User 类中的 id 字段和 username 字段分别使用了 @NotNull 注解,用于校验 ID 和用户名不能为空且不为 null。当校验失败时,会抛出相应的校验异常。

相关推荐

  1. spring@validate注解使用

    2024-02-23 22:09:26       68 阅读
  2. 参数校验注解使用- validator

    2024-02-23 22:09:26       72 阅读
  3. kotlin使用validation注解无效

    2024-02-23 22:09:26       42 阅读
  4. Spring Boot使用Validation进行表单验证

    2024-02-23 22:09:26       43 阅读
  5. Spring Boot 使用validation校验参数

    2024-02-23 22:09:26       57 阅读
  6. 使用注解@GrpcService在Spring Boot 开始使用gRPC

    2024-02-23 22:09:26       48 阅读
  7. Spring注解

    2024-02-23 22:09:26       56 阅读

最近更新

  1. docker php8.1+nginx base 镜像 dockerfile 配置

    2024-02-23 22:09:26       94 阅读
  2. Could not load dynamic library ‘cudart64_100.dll‘

    2024-02-23 22:09:26       100 阅读
  3. 在Django里面运行非项目文件

    2024-02-23 22:09:26       82 阅读
  4. Python语言-面向对象

    2024-02-23 22:09:26       91 阅读

热门阅读

  1. 第五章、策略模式

    2024-02-23 22:09:26       63 阅读
  2. Qt应用软件【协议篇】GPIO控制LED灯

    2024-02-23 22:09:26       62 阅读
  3. 【小白友好】python leetcode 27 remove element

    2024-02-23 22:09:26       63 阅读
  4. 【GB28181】 SDP 报文内容(UDP、TCP主动、TCP被动)

    2024-02-23 22:09:26       50 阅读
  5. 设计模式-建造者模式(Builder Pattern)

    2024-02-23 22:09:26       51 阅读
  6. 数据结构与算法-队列

    2024-02-23 22:09:26       63 阅读
  7. 【selenium】WebElement、WebDriver、三种等待方式

    2024-02-23 22:09:26       57 阅读
  8. 00_C语言学习笔记

    2024-02-23 22:09:26       55 阅读