我试图在春季启动中实现验证,但找不到@NotBlank
,@NotNull
,@NotEmpty
,任何注释。我特别想使用@NotBlank
作为我的实体字段。
我尝试了以下依赖项:
implementation 'org.hibernate.validator:hibernate-validator:8.0.0.Final'
implementation 'org.hibernate:hibernate-validator:8.0.0.Final'
implementation 'org.hibernate:hibernate-validator-cdi:8.0.0.Final'
implementation 'org.hibernate.validator:hibernate-validator-annotation-processor:8.0.0.Final'
implementation 'jakarta.annotation:jakarta.annotation-api:2.1.1'
同时implementation 'org.hibernate:hibernate-validator-cdi:8.0.0.Final'
implementation 'org.glassfish:jakarta.el:'
implementation 'org.hibernate:hibernate-annotations:3.5.6-Final'
implementation 'org.springframework.boot:spring-boot-starter-validation'
Hibernate网站https://docs.jboss.org/hibernate/stable/validator/reference/en-US/html_single/#validator-gettingstarted表示同时使用
<dependency>
<groupId>org.hibernate.validator</groupId>
<artifactId>hibernate-validator</artifactId>
<version>8.0.0.Final</version>
</dependency>
<dependency>
<groupId>org.glassfish.expressly</groupId>
<artifactId>expressly</artifactId>
<version>5.0.0</version>
</dependency>
但是我找不到glassfish.expressly
build.gradle
plugins {
id 'java'
id 'org.springframework.boot' version '3.0.1'
id 'io.spring.dependency-management' version '1.1.0'
}
group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '19'
configurations {
compileOnly {
extendsFrom annotationProcessor
}
}
repositories {
mavenCentral()
}
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
implementation 'org.springframework.boot:spring-boot-starter-security'
implementation 'org.springframework.boot:spring-boot-starter-web'
compileOnly 'org.projectlombok:lombok'
developmentOnly 'org.springframework.boot:spring-boot-devtools'
runtimeOnly 'com.mysql:mysql-connector-j'
annotationProcessor 'org.projectlombok:lombok'
implementation 'org.springframework.boot:spring-boot-starter-validation'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
testImplementation 'org.springframework.security:spring-security-test'
}
tasks.named('test') {
useJUnitPlatform()
}
有人帮助我实现验证如果SpringBoot在V3.0.1中删除了@NotBlank
,@NotNull
,@NotEmpty
验证
如果您使用的是Spring Boot 3.0,只需要添加一个validation
启动器。它将为您添加bean验证api和实现(Hibernate验证器)。
在Gradle构建脚本中,添加以下
dependencies{
// ...
implementation 'org.springframework.boot:spring-boot-starter-validation'
}
刷新Gradle build,所有的注释都可以在jakarta.validation
包中获得。
与@Hantsy的帮助经过这么多次尝试,我找到了解决办法。我尝试重新加载IDE窗口。我尝试了./gradlew build --refresh-dependencies
,但它也没有工作给我。
<解决方案/strong>
实际上,下面的依赖项用于解决我的问题
implementation 'org.springframework.boot:spring-boot-starter-validation'
但是它不工作的原因是Gradle
没有刷新依赖项
所以为了使它工作,我在VC CODE
中添加了rebuild project
每当你添加新的依赖项时,总是rebuild
你的项目