首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如果我添加@Size(min>2),那么使用@NotNull注解有意义吗?

如果我添加@Size(min>2),那么使用@NotNull注解仍然具有意义。

@Size(min>2)注解用于限制字符串、集合或数组的最小长度。它可以确保输入的值的长度大于指定的最小值。@Size注解通常与@NotNull一起使用,目的是在验证过程中同时验证非空性和长度。

@NotNull注解用于确保字段值不为空。它适用于所有类型的字段,包括字符串、集合、数组等。当应用@NotNull注解时,字段值不能为空,否则将引发验证错误。

当同时使用@Size(min>2)和@NotNull注解时,@Size(min>2)用于限制字段值的最小长度,@NotNull用于验证字段值的非空性。这样可以确保字段值不仅不为空,而且长度也满足指定的最小值。

应用场景: 在某些情况下,我们希望字段既不为空,又满足最小长度的要求。例如,对于用户注册表单中的用户名字段,我们希望确保用户名既不能为空,又不能太短。在这种情况下,同时使用@Size(min>2)和@NotNull注解可以满足我们的要求。

推荐的腾讯云相关产品和产品介绍链接地址:

  • 腾讯云服务器(CVM):https://cloud.tencent.com/product/cvm
  • 腾讯云云函数(SCF):https://cloud.tencent.com/product/scf
  • 腾讯云数据库(TencentDB):https://cloud.tencent.com/product/tencentdb
  • 腾讯云人工智能(AI):https://cloud.tencent.com/product/ai
  • 腾讯云物联网(IoT):https://cloud.tencent.com/product/iotexplorer
  • 腾讯云移动开发:https://cloud.tencent.com/solution/mobile
  • 腾讯云对象存储(COS):https://cloud.tencent.com/product/cos
  • 腾讯云区块链服务(BCS):https://cloud.tencent.com/product/bcs
  • 腾讯云元宇宙(MetaUniverse):https://cloud.tencent.com/solution/industry/meta-universe
页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

【Spring】SpringBoot的10个参数验证技巧

具体用法参考下面例子: public class User { @NotNull private Long id; @NotBlank @Size(min = 2, max = 50) private...String firstName; @NotBlank @Size(min = 2, max = 50) private String lastName; @Email private String...(regexp = "[A-Z]{2}\d{4}") private String employeeId; 2 使用自定义验证注解 虽然 Spring Boot 的内置验证注释很有用,但它们可能无法涵盖所有情况...如果有特殊参数验证的场景,可以使用 Spring 的 JSR 303 验证框架创建自定义验证注释。自定义注解可以让你的的验证逻辑更具可重用性和可维护性。...4 提供有意义的错误信息 当验证失败时,必须提供清晰简洁的错误消息来描述出了什么问题以及如何修复它。 这是一个示例,如果我们有一个允许用户创建新用户的 RESTful API。

61640
  • 分组序列@GroupSequenceProvider、@GroupSequence控制数据校验顺序,解决多字段联合逻辑校验问题【享学Spring MVC】

    这也就是我们常说的多字段联合校验逻辑~ 因为这个校验的case比较常见,因此促使了记录本文的动力,因为它会变得有意义和有价值。...name; @NotNull @Range(min = 10, max = 40) private Integer age; @NotNull @Size(min...通过使用@Valid可以实现递归验证,因此可以标注在List上,对它里面的每个对象都执行校验 ---- 问题来了,针对上例,现在有如下需求: 若20 <= age < 30,那么hobbies的size...需介于1和2之间 若30 <= age < 40,那么hobbies的size需介于3和5之间 age其余值,hobbies无校验逻辑 实现方案 Hibernate Validator提供了非标准的@GroupSequenceProvider...NotNull(groups = {WhenAge20And30Group.class, WhenAge30And40Group.class}) @Size(min = 1, max = 2,

    3.8K21

    Bean Validation完结篇:你必须关注的边边角角(约束级联、自定义约束、自定义校验器、国际化失败消息...)【享学Spring】

    ,而是旨在介绍你在使用过程中不得不关心的周边、细节~ 如果说前面是用机,那么本文就有点玩机的意思~ BV(Bean Validation)的使用范围 本次再次强调了这一点(设计思想是认为特别重要的存在...约束级联(级联校验) 如果要验证属性关联的对象,那么需要在属性上添加@Valid注解如果一个对象被校验,那么它的所有的标注了@Valid的关联对象都会被校验,这些对象也可以是数组、集合、Map等,这时会验证他们持有的所有元素...放在类路径下,文件内容如下: // 此处可以使用占位符{value}读取注解对应属性上的值 com.fsx.my.min.message=[自定义消息]最小值必须是{value} 运行测试用例,打印输出如下失败消息..., name = "min") int min() default 0; @OverridesAttribute(constraint = Size.class, name = "max...这个时候我们有两种做法: 就在该属性上标注多个注解即可(推荐) 自定义一个注解,把这些注解封装起来,形成一个新的约束注解使用场景相对较少) 自定义message消息可使用的变量 我们知道约束的失败消息

    1.7K20

    SpringBoot--数据校验(普通校验、分组校验)

    @Size表示一个字符串的长度或者一个集合的大小,必须在某一个范围中;min参数表示范围的下限;max参数表示范围的上限;message表示校验失败时的提示信息。...@NotNull注解表示该字段不能为空 @DecimalMin注解表示对应属性值的下限 @DecimalMax注解表示对应属性值的上限 @Email注解表示对应属性格式是一个Email 创建UserController...如果BindingResult中的haiErrors方法返回true,表示有错误信息,此时遍历错误信息,将之返回给前端 使用Postman测试: 直接访问"/user"接口: ?...{ } public interface ValidationGroup2 { } 在实体类中添加分组信息: public class User { private Integer id;...{ //@Validated(ValidationGroup2.class) 表示这里的校验使用ValidationGroup2分组的校验规则,即只校验邮箱地址是否为空、用户地址是否为空

    1.5K10

    【译】如何在 Spring 中将 @RequestParam 绑定到对象

    在许多情况下,使用 @NotBlack 替代 @NotNull有意义,因为它也覆盖了不希望出现的空字符串问题(长度为零的字符串)。...; @Min(1) private int limi; // ... } 需要注意的是: 仅在字段上添加验证注解还不足以使校验生效。...要校验所有嵌套属性,你应该在嵌套对象字段上添加 @Valid 注解。请注意,当嵌套对象字段为 null 时,Spring 不会验证其属性。如果所有嵌套属性都是可选的,那么这可能是预期的解决方案。...如果不是,则需在嵌套对象字段上放置 @NotNull 注解。...希望呈现的案例是自解释的,但如果有任何疑问,或者你想发表你的看法,强烈建议你在文章下方留下你的评论。

    47710

    SpringBoot中使用注解对实体类中的属性进行校验

    是你们的老朋友Java学术趴。 2.5 实体类参数校验 2.5.1 验证注解介绍 SpringBoot中提供了可以给实体类上的参数加入校验,对于前端请求的数据进行校验。...常用的验证注解 注意:这来要也别注意一下 @NotNull、@NotNull、@NotBlank以及@NotEmpty注解的区别 @NotNull :传递的所有对象都不能是null,其他的不保证。...BigDecimal wage; ​ @Valid 递归的对关联对象进行校验, 如果关联对象是个集合或者数组,那么对其中的元素进行递归校验,如果是一个map,则对其中的值部分进行校验...., 因为在前端传递过来数据可能是大量的数据或者是一个对象,这样如果一个一个的手写注解验证非常的麻烦,此时就需要使用到这两个注解,这两个注解会递归的将对象中的每个实体类属性进行校验,当所有验证成功的时候才会向下执行...批量校验 :如果是 post请求的一个对象,那么此时我们需要使用 @Validated注解 进行批量校验,因为在实体类中已经给属性加入了相应的验证注解,所以他会使用递归的方式进行逐一的校验。

    4.7K21

    求求你别在用IF ELSE校验参数了

    ) @Size(max, min) 被注释的元素的大小必须在指定的范围内,可用于字符串、Collection、Map、数组等类型 @Digits (integer, fraction) 被注释的元素必须是一个数字...sex; @NotBlank(message = "姓名不能为空") @Size(min = 2,max = 5,message = "姓名长度不规范") private...进入Controller对应方法,在需要校验的对象前添加@Valid注解即可(校验对静态变量不生效),在使用 @Valid 注解的参数后可以紧跟着一个 BindingResult 类型的参数,用于获取校验结果...,抛出的异常为该类异常 //方法参数如果带有@RequestBody注解那么spring mvc会使用RequestResponseBodyMethodProcessor //对参数进行序列化...value为null,那么该校验规则不生效;可搭配@NotNull注解使用,更加灵活 if(value == null){ return true;

    1.8K20

    Validator,就来这一篇吧

    ) @Size(max, min) 被注释的元素的大小必须在指定的范围内,可用于字符串、Collection、Map、数组等类型 @Digits (integer, fraction) 被注释的元素必须是一个数字...sex; @NotBlank(message = "姓名不能为空") @Size(min = 2,max = 5,message = "姓名长度不规范") private...进入Controller对应方法,在需要校验的对象前添加@Valid注解即可(校验对静态变量不生效),在使用 @Valid 注解的参数后可以紧跟着一个 BindingResult 类型的参数,用于获取校验结果...,抛出的异常为该类异常 //方法参数如果带有@RequestBody注解那么spring mvc会使用RequestResponseBodyMethodProcessor //对参数进行序列化...value为null,那么该校验规则不生效;可搭配@NotNull注解使用,更加灵活 if(value == null){ return true;

    2.7K10

    求求你别在用IF ELSE校验参数了

    ) @Size(max, min) 被注释的元素的大小必须在指定的范围内,可用于字符串、Collection、Map、数组等类型 @Digits (integer, fraction) 被注释的元素必须是一个数字...sex; @NotBlank(message = "姓名不能为空") @Size(min = 2,max = 5,message = "姓名长度不规范") private...进入Controller对应方法,在需要校验的对象前添加@Valid注解即可(校验对静态变量不生效),在使用 @Valid 注解的参数后可以紧跟着一个 BindingResult 类型的参数,用于获取校验结果...,抛出的异常为该类异常 //方法参数如果带有@RequestBody注解那么spring mvc会使用RequestResponseBodyMethodProcessor //对参数进行序列化...value为null,那么该校验规则不生效;可搭配@NotNull注解使用,更加灵活 if(value == null){ return true;

    1.9K10

    求求你别在用IF ELSE校验参数了

    ) @Size(max, min) 被注释的元素的大小必须在指定的范围内,可用于字符串、Collection、Map、数组等类型 @Digits (integer, fraction) 被注释的元素必须是一个数字...sex; @NotBlank(message = "姓名不能为空") @Size(min = 2,max = 5,message = "姓名长度不规范") private...进入Controller对应方法,在需要校验的对象前添加@Valid注解即可(校验对静态变量不生效),在使用 @Valid 注解的参数后可以紧跟着一个 BindingResult 类型的参数,用于获取校验结果...,抛出的异常为该类异常 //方法参数如果带有@RequestBody注解那么spring mvc会使用RequestResponseBodyMethodProcessor //对参数进行序列化...value为null,那么该校验规则不生效;可搭配@NotNull注解使用,更加灵活 if(value == null){ return true;

    1.7K20

    Java Bean Validation的使用

    Spring Web项目中需要校验参数的正确性,JSR 303是其规范,hibernate-validator是该规范的一个实现,使用他可以实现统一的参数校验 添加依赖 因为在Spring Boot...@Max @Length等规则都是在字段不为Null的时候校验,如果字段为Null,则不使用这种规则。...如果一定要满足,则还需要添加规则@NotNull Controller中校验规则 添加注解@Valid @Slf4j @SpringBootApplication @RestController...* @Size(min= , max= )集合的元素数量必须在min和max之间 * @CreditCardNumber(ignoreNoDigitCharacters=) 字符串必须是信用卡的卡号...* @Min 值必须大于等于value 指定的值,不能注解在字符串类型的属性上 */ 如果这些校验注解不满要求,还可以添加自定义注解,比如@Idcard 参考 Validation

    83330

    @Valid注解使用---SpringMvc中的校验框架@valid和@validation的概念及相关使用

    ① 首先需要在实体类的相应字段上添加用于充当校验条件的注解,如:@Min,如下代码(age属于Girl类中的属性): @Min(value = 18,message = "未成年禁止入内")...private Integer age; ② 其次在controller层的方法的要校验的参数上添加@Valid注解,并且需要传入BindingResult对象,用于获取校验失败情况下的反馈信息,如下代码...hibernate validation的时候使用 @Validated 是只用spring  Validator 校验机制使用\ 2.实现 其中,@valid,java的jsr303声明了这类接口,hibernate-validator..., 如果关联对象是个集合或者数组,那么对其中的元素进行递归校验,如果是一个map,则对其中的值部分进行校验....用在String上面 @NotNull    用在基本类型上 如果在基本类型上面用NotEmpty或者NotBlank 会出现上面的错

    4.6K10

    使用hibernate validate做参数校验

    ; return response; } 但是当接口参数很多,并且参数校验很负责的时候,如果继续使用这种校验的方式,校验代码会非常多,并且难以维护。...那么在这种情况下可以考虑使用hibernate validate做参数校验。...2.hibernate validate简介 hibernate validate是基于注解来实现的参数校验框架,并且有很好的扩展性,使用者可以通过自定义约束条件来实现自定义的校验条件。...以下为添加注解的一个小例子: public class Car { @NotNull private String manufacturer; @NotNull @Size(...10位之前 以上例子中的注解比较简单,通过添加 @NotBlank(message = "商品名称不能为空") @Size(min = 2, max = 10, message = "税号长度必须在2

    92320

    如何实现Java后端数据校验?看这篇就足够!

    不能为null Null 必须为 null Pattern(value) 被注释的元素必须符合指定的正则表达式 Size(max, min) 检查该字段的size是否在min和max之间,可以是字符串...@Valid,那么每个@Valid后面跟着的BindingResult就是这个@Valid的验证结果,顺序不能乱,如果有多个@Valid,那么需要多个BindingResult来保存校验结果,首先我们需要在我们的实体上定义校验规则...嵌套验证 表示一个校验实体中还嵌套者另一个待校验实体,需要同时对他们进行校验 分组校验 添加校验注解的方式固然是方便的,但是如果一个实体对象在不同的业务中的校验规则不同的话,难道我们需要编写两个...,在API接收数据时添加@Valid注解,这时你的实体将会开启一个校验的功能。...总结 通过该篇文章,我们讲解了hibernate的常见校验注解使用、hibernate的两种校验模式的区别和配置实现、hibernate的分组校验规则、详细说明了@Validated和@Valid注解的区别以及使用

    13.4K72

    入参校验1

    如果允许空值,则接口中变量需要使用包装类来声明。 defaultValue:参数的默认值,如果请求中没有同名的参数时,该变量默认为此值。...注意默认值可以使用SpEL表达式,如"#{systemProperties[‘java.vm.version’]}" 三、JSON实体类校验 1、注解解析 validation-api中的注解 注解...限制必须不为null 任意类型(包括8种基本数据类型及其包装类、String、枚举类、自定义类等);但是对于基本数据类型,没有意义 @Size(min, max) 限制Collection类型或String...此时,如果我们直接使用 java.util.Collection 下的 List 或者 Set 来接收数据,参数校验并不会生效。...在这种情况下,我们需要使用自定义的 List 集合来接收参数,即包装 List 类型,并声明 @Valid 注解

    26140
    领券