gpt4 book ai didi

java - spring webflux 是否支持javax bean验证?

转载 作者:行者123 更新时间:2023-11-30 07:53:59 25 4
gpt4 key购买 nike

我用一些 @NotNull 注释了我的 bean,并在 @GetMapping 中使用了 spring @Valid 注释。但这没有用。

我从其他应用程序中看到的唯一区别是我使用 @EnableWebMvc 而不是 @EnableWebFlux

在 Controller 中:

    @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);
}
}

我的 bean 类:

    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>

我做错了什么吗?

最佳答案

实际上存在一些依赖性问题。在依赖项中,您可以看到这两个库:

org.hibernate:hibernate-validator:5.4.1.Final
javax.validation:validation-api:1.1.0.Final

并且根据文档Hibernate Validator你应该为 Unified Expression Language 提供额外的依赖

compile group: 'org.glassfish', name: 'javax.el', version: '3.0.1-b08'

@Valid 注释之后应该按预期工作。

关于java - spring webflux 是否支持javax bean验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44369579/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com