Java 在spring boot中实现TDD,但我无法在controller中使用@valid注释

Java 在spring boot中实现TDD,但我无法在controller中使用@valid注释,java,spring,spring-boot,Java,Spring,Spring Boot,这是控制器 package.com.Controller; 导入org.springframework.beans.factory.annotation.Autowired; //导入java.util.ArrayList; //导入java.util.List; 导入javax.validation.Valid; 导入org.springframework.validation.annotation.Validated; //导入org.springframework.web.bind.ann

这是控制器

package.com.Controller;
导入org.springframework.beans.factory.annotation.Autowired;
//导入java.util.ArrayList;
//导入java.util.List;
导入javax.validation.Valid;
导入org.springframework.validation.annotation.Validated;
//导入org.springframework.web.bind.annotation.GetMapping;
导入org.springframework.web.bind.annotation.PostMapping;
导入org.springframework.web.bind.annotation.RequestBody;
导入org.springframework.web.bind.annotation.RequestMapping;
导入org.springframework.web.bind.annotation.RestController;
@RestController
@请求映射(“/api”)
公共类注册控制器{
@自动连线
注册库;
@邮戳(“/注册”)
公共用户注册(@val@RequestBody User){
//拯救一个客户
返回repository.save(用户);
//返回“客户已创建”;
}
这是我的身材等级

plugins {
  id 'org.springframework.boot' version '2.3.3.RELEASE'
  id 'io.spring.dependency-management' version '1.0.10.RELEASE'
  id 'java'
}

group = 'newproject'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '14'
repositories {
   mavenCentral()
}

dependencies {
  implementation 'org.springframework.boot:spring-boot-starter-data-jdbc'
  implementation 'org.springframework.boot:spring-boot-starter-data-jpa'    
  implementation 'org.springframework.boot:spring-boot-starter-web'
  implementation 'org.springframework.boot:spring-boot-starter-web-services'
  implementation 'org.springframework.boot:spring-boot-starter-webflux'
  implementation 'org.springframework.boot:spring-boot-starter-validation'

  runtimeOnly 'com.microsoft.sqlserver:mssql-jdbc'
  runtimeOnly 'mysql:mysql-connector-java'
  runtimeOnly 'org.postgresql:postgresql'

  testImplementation('org.springframework.boot:spring-boot-starter-test') {
        
exclude group: 'org.junit.vintage', module: 'junit-vintage-engine'
    
}
  testImplementation 'org.testcontainers:junit-jupiter'
}

test {
  useJUnitPlatform()
}
这是我的TDD测试课程

package.com.Controller;
导入org.junit.Assert;
导入org.junit.jupiter.api.Test;
导入org.junit.runner.RunWith;
导入org.springframework.beans.factory.annotation.Autowired;
导入org.springframework.boot.test.context.SpringBootTest;
导入org.springframework.boot.test.web.client.TestRestTemplate;
导入org.springframework.boot.web.server.LocalServerPort;
//导入org.springframework.http.HttpEntity;
导入org.springframework.http.ResponseEntity;
导入org.springframework.test.context.junit4.SpringRunner;
//导入org.springframework.web.client.rest模板;
//导入io.netty.handler.codec.http.HttpMethod;
@RunWith(SpringRunner.class)
@SpringBootTest(class=LotteryApplication.class,
webEnvironment=SpringBootTest.webEnvironment.RANDOM\u端口)
类LotteryApplicationTests{
@自动连线
私有TestRestTemplate;
@本地服务器端口
专用int端口;
私有字符串getRootUrl(){
返回“http://localhost:“+端口+”/api/v1”;
}
@试验
public void contextLoads(){}
@试验
公开无效注册(){
用户=新用户();
user.setNick_name(“amon”);
user.setNmfirts_name(“amon”);
user.setNmmid_name(“aron”);
user.setNmlast_名称(“作业”);
user.setUserprofile_tpid(321);
user.setUseruser\u tpid(312);
user.setUserstatus\u tpId(332);
user.setFullpathname_图片(“mmmmm”);
user.setId_所有者(1);
ResponseEntity postResponse=restTemplate.postForEntity(getRootUrl()+“/registration”,user,user.class);
Assert.assertNotNull(postResponse);
Assert.assertNotNull(postResponse.getBody());
}       
}

您正在使用
@val
-这是故意的吗?

如果您能重新格式化您的问题,使代码正确显示并突出显示,那就太好了。您正在使用
@val
(可能来自lombok),您应该在
javax.validation
包中使用
@Valid
。我无法导入“javax.validation.valid”当我使用@valid时,它给出一个错误“valid不能解析为类型”
public User registration(@val @RequestBody User user){