您现在的位置是: 首页 > 后端开发 SpringBoot @NotBlank 不生效问题
SpringBoot @NotBlank 不生效问题
2020-06-11 【后端开发】 8179人已围观 14487次浏览
简介SpringBoot @NotBlank 不生效问题
SpringBoot 项目中用到了参数校验,而 Spring 的参数校验库为 validation-api ,所以直接在项目中进行了引用
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>2.0.1.Final</version>
</dependency>
而在实际使用的过程中发现,只引用这个库并没有任何的效果,demo 代码为
import lombok.Data;
import javax.validation.constraints.NotBlank;
@Data
public class User {
@NotBlank
private String username;
}
import org.springframework.validation.annotation.Validated;
@PostMapping("/user")
public User create(@Validated @RequestBody User user) {
...
}
当 username 为空为null时,依然进入了 create 方法,并没有做任何的校验,也没有抛出异常。
经常查找文档发现,validation-api 只是一套标准,而具体是实现是依赖 hibernate-validator 库,所以在引用 validation-api 库的前提下,还要引用 hibernate-validator 库才能正常使用,具体的 pom 信息如下
<dependency>
<groupId>javax.validation</groupId>
<artifactId>validation-api</artifactId>
<version>2.0.1.Final</version>
</dependency>
<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-validator</artifactId>
<version>6.0.13.Final</version>
</dependency>
之后重新运行项目,就会发现如果不传 username 参数,就会抛出异常
还需要注意的是,hibernate-validator 的版本要和 validation-api 版本相对应,否则依然会出现错误,比如我在项目中引用的 hibernate-validator 是 6.0.13.Final 版本(虽然不是目前最新的,但够用了。需要最新的也可以选择最新版本),需要引用的 validation-api 版本就应该为 2.0.1.Final,如图所示
参考地址
https://mvnrepository.com/artifact/org.hibernate.validator/hibernate-validator/6.0.13.Final
其他 hibernate-validator 版本也可以在这个网站内找到,对应的 validation-api 依赖版本,看下面的介绍也可以找到
很赞哦! (0)
相关文章
- 获取阿里云CDN真实IP
- SqlServer 刷新所有视图
- 类 BASE64Decoder 程序包 sun.misc 找不到符号
- Error in execution; nested exception is io.lettuce.core.RedisCommandExecutionException: ERR DISABLE You can't write or read against a disable instance
- 删除Git仓库所有历史提交记录,成为一个干净的仓库
- RocketMQ 出现 sendDefaultImpl call timeout 问题
- Nestedset 出现 Node must exists. 错误解决方案
- 记一次Java MessageFormat.format踩坑
- SpringBoot 2.x Security security.basic.enabled=false 失效问题解决
- PHP 在执行 composer install 时出现提示 PHP Fatal error: Allowed memory size of XXXXXX bytes exhausted <...>
点击排行
- Error in execution; nested exception is io.lettuce.core.RedisCommandExecutionException: ERR DISABLE You can't write or read against a disable instance
- Debian apt 使用国内镜像
- RocketMQ 出现 sendDefaultImpl call timeout 问题
- 类 BASE64Decoder 程序包 sun.misc 找不到符号
- SpringBoot @NotBlank 不生效问题
- 记一次 Mybatis-Plus 自动填充无效问题解决
- SpringBoot 2.x 文件上传出现 The field file exceeds its maximum permitted size of 1048576 bytes
- nuxt 项目完整部署方案
站长推荐
猜你喜欢
- Redis 提示 MISCONF Redis is configured to save RDB snapshots, but it is currently not able to persist on disk 解决方案
- LNMP定时备份任务教程(支持排除指定文件夹)
- SqlServer 查询包含指定字段的存储过程
- mybatis中大于等于小于等于的写法
- Android SDK版本号与API级别的对照表
- 【代码片段】MySQL 查看数据库所有表注释
- 自建Ngrok服务端
- Oracle ORA-12541:TNS:no listener错误解决方法
- docker mysql 导入 SQL 脚本
- 类 BASE64Decoder 程序包 sun.misc 找不到符号