【发布时间】:2017-11-06 06:21:01
【问题描述】:
我用@NotNull 注释了我的bean,并在@GetMapping 中使用了spring @Valid 注释。但这没有用。
我从其他应用程序中看到的唯一区别是我使用@EnableWebMvc 而不是@EnableWebFlux。
在控制器中:
@PostMapping(value = "/something")
public Mono<ResponseEntity> save(
@Valid @RequestBody MyBean mybean) {
return myService.save(myBean)
.map(RestResponses::ok)
.defaultIfEmpty(RestResponses.empty());
}
在Application.java中:
@SpringBootApplication
@EnableWebFlux
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}
我的豆类:
import org.springframework.data.annotation.Id;
import org.springframework.data.redis.core.RedisHash;
import org.springframework.data.redis.core.index.Indexed;
import javax.validation.constraints.NotNull;
import java.util.Objects;
@RedisHash("mybean")
public class MyBean {
@Id
private Long id;
@NotNull
@Indexed
private String name;
//getters, setters...
}
和 pom.xml:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.0.M1</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
...
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webflux</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>io.netty</groupId>
<artifactId>netty-all</artifactId>
</dependency>
</dependencies>
我做错了吗?
【问题讨论】:
-
能否请您添加您的 get 方法的代码?
-
@Orest,完成!感谢您的关注。
-
还有
MyBean类。还有你有什么弹簧靴版本2.0.0M1? -
@Orest。抱歉,我忘记了。
-
所以在依赖项中你也有
org.glassfish:javax.el对吗?
标签: java spring validation spring-mvc spring-webflux