2026/4/6 5:44:36
网站建设
项目流程
国内商城网站建设,网站建设运营的灵魂是什么,桌面软件开发工具,河北建设行业信息网站这里写目录标题#x1f3af; 核心定义#x1f4ca; 与其他注解的区别#x1f4bb; 代码示例#x1f6e0;️ 如何使用#x1f4a1; 适用场景建议NotBlank 是 Java Bean Validation#xff08;数据校验#xff09;中一个非常常用的注解#xff0c;主要用于严格校验字符串…这里写目录标题 核心定义 与其他注解的区别 代码示例️ 如何使用 适用场景建议NotBlank 是 Java Bean Validation数据校验中一个非常常用的注解主要用于严格校验字符串。 核心定义NotBlank 专门用于String字符串类型的字段或参数。它的校验逻辑非常严格要求被注解的字符串必须同时满足以下三个条件不能为 null。不能是空字符串 “”。不能是纯空白字符例如 “、”\t、“\n” 等即去除首尾空格后长度必须大于 0。 与其他注解的区别为了方便你记忆我整理了一个对比表格。这是 NotBlank 最容易混淆的三个注解注解适用类型校验严格度能否通过纯空格 NotNull所有对象最宽松能 (只检查 null)NotEmpty字符串、集合、数组中等能 (只检查长度/大小)NotBlank仅字符串最严格不能 (会 trim() 后检查)一句话总结区别NotNull 只管“有没有”不为 null。NotEmpty 管“是不是空的”长度/大小 0。NotBlank 管“是不是真的有内容”必须有非空格字符。 代码示例假设我们有一个用户注册的场景publicclassUser{// 只要不为 null 就行可以是 或 NotNullprivateStringfield1;// 不能为 null且长度必须 0所以 是允许的NotEmptyprivateStringfield2;// 不能为 null不能是 且不能是 (纯空格会被视为无效)NotBlankprivateStringusername;// getter and setter...}测试数据验证结果输入值NotNullNotEmptyNotBlanknull❌ 失败❌ 失败❌ 失败(空字符串)✅ 通过❌ 失败❌ 失败 (纯空格)✅ 通过✅ 通过❌ 失败abc(正常内容)✅ 通过✅ 通过✅ 通过️ 如何使用在 Spring Boot 项目中通常配合 Valid 或 Validated 使用。引入依赖通常 Spring Boot Starter 已包含dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-validation/artifactId/dependency在实体类或 Controller 参数上使用RestControllerValidatedpublicclassUserController{PostMapping(/register)publicStringregister(RequestBodyValidUseruser){// 业务逻辑returnsuccess;}}如果前端传入的 username 是 null、“” 或 框架会自动拦截并抛出异常不会进入业务逻辑。 适用场景建议使用 NotBlank用于业务必填且必须有意义的文本字段如用户名、密码、真实姓名、地址、备注等。防止用户“偷懒”只输入空格。使用 NotEmpty用于集合List/Set判空或者字符串只要求长度大于 0允许空格的特殊场景。使用 NotNull用于 Long、Integer 等包装类或者日期类型或者你只关心对象是否存在而不关心内容的场景。