0 问题描述
将Spring Boot从2.1.8升级到最新版的2.3.2后提示@NotEmpty,@Valid等注解无效,找不到javax.validation.constraints.NotEmpty,javax.validation.Valid类。
1 解决方法
今天在学习Spring实战一书过程中,在添加注解的时候显示了找不到这个Size,经过查询资料,在Spring的release note中看到:
从Spring Boot 2.3 Release Notes中可以发现,原来从2.3版本开始,Spring Boot的starter包不再默认包含spring-boot-starter-validation库了,也就是说如果没有声明引入该库,将会提示javax.validation.*相关的类找不到,所以要继续使用@ Valid,@ NotEmpty等注解的话,我们需要引入该库。
对于Maven,使用如下代码:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
Gradle使用如下:
dependencies {
...
implementation 'org.springframework.boot:spring-boot-starter-validation'
}
2 后记(吐槽)
《Spring in practice》(Spring实战第五版)这本书才读到第二章的一半,问题太多了,遇到了排版错误,还遇到了代码错误,去官网上拉到的代码也是错的,要么就是过时的,还需要自己一点点去解决。