【发布时间】:2021-05-22 02:33:42
【问题描述】:
我有一个名为 MyConfig.java 的类。
import javax.validation.constraints.NotNull;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
@Configuration
public class MyConfig {
@NotNull
@Value("${test.key}")
public String queryIndex;
}
我的问题是,它如何在没有任何@Validated 或@Valid 的情况下在 Spring Boot 应用程序的启动中得到验证。我了解 @Configuration 类在启动时由 Spring 容器拾取(以生成 bean 定义,如果有的话)并且 javax.validator 在类路径上。
下面的代码 sn-p 是有意义的,因为在 POJO 类上添加了 @Valid 注解:
@PostMapping
public String test(@Valid @RequestBody Employee emp) {
return "";
}
来自 Spring Doc:-
3.8.1。 JSR-303 Bean 验证 API 概述
JSR-303 标准化了 Java 平台的验证约束声明和元数据。使用此 API,您可以使用声明性验证约束来注释域模型属性,并且运行时会强制执行它们。
【问题讨论】:
-
你可以写切面或者BeanPostProcessor和检查逻辑
标签: java spring spring-boot