springboot2.3之后,hibernate-validator依赖缺失【踩坑】

SpringBoot从2.3版本开始不再默认包含hibernate-validator依赖,导致@Blank等注解无法使用。官方已明确此改动,解决办法是在项目pom.xml中手动引入spring-boot-starter-validation依赖,具体版本如2.3.5.RELEASE。

springboot2.3之后,hibernate-validator依赖缺失

今天在写项目的时候,发现@Blank注解没有了,检查了一下,发现老版本springboot内集成的hibernate-validator依赖已经去掉了

如图,当前版本2.4.0的spring-boot-starter-web包
2.4.0
版本2.1.3
2.1.3

在网上查阅了一下:

解决方法:

在pom文件里手动加入依赖

<!-- https://mvnrepository.com/artifact/org.springframework.boot/spring-boot-starter-validation -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-validation</artifactId>
    <version>2.3.5.RELEASE</version>
</dependency>
### hibernate-validator 8.0.0.Final 的作用 `hibernate-validator` 是对 `validation-api` 的再次封装,在开发中经常用于参数校验,特别是在 Spring Boot 的 `spring-boot-starter-web` 中默认应用了该包。它提供了丰富的注解,可用于简化参数合法性的判断,避免使用大量 `if...else...` 语句导致代码臃肿。例如,在 Spring Boot 集成中,可使用 `@Null`、`@NotNull`、`@AssertTrue` 等注解对参数进行校验 [^1][^4]。 以下是一个简单示例: ```java import javax.validation.constraints.NotNull; public class User { @NotNull(message = "用户名不能为 null") private String username; public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } } ``` ### hibernate-validator-annotation-processor 8.0.0.Final 的作用 `hibernate-validator-annotation-processor` 是一个注解处理器,主要用于在编译时处理 `hibernate-validator` 的注解。它可以在编译阶段检查注解的使用是否正确,提前发现潜在的校验问题,避免在运行时才出现错误。同时,它还可以生成一些辅助代码,帮助提高校验的性能和可维护性。 示例:当使用 `@Size` 注解时,如果注解使用不正确,注解处理器会在编译时给出错误提示。 ```java import javax.validation.constraints.Size; public class Product { @Size(min = 1, max = 10, message = "产品名称长度必须在 1 到 10 之间") private String name; public String getName() { return name; } public void setName(String name) { this.name = name; } } ```
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值