我有一个名为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启动应用程序时验证它。我知道@configuration类是由spring容器在启动时获取的(如果有的话,可以生成bean定义),javax.validator在类路径上。
下面的代码段很有意义,因为在pojo类上添加了@valid注解:
@PostMapping
public String test(@Valid @RequestBody Employee emp) {
return "";
}
从Spring开始doc:-
链接此处以供参考
3.8.1. jsr-303bean验证api概述
jsr-303标准化了java平台的验证约束声明和元数据。使用这个api,您可以用声明性验证约束来注解域模型属性,并且运行时强制执行这些约束。
1条答案
按热度按时间1rhkuytd1#
这是你的名字solution:-
myconfig.java文件
应用程序属性
这个依赖关系是pom.xml中必须的
因此,@validated,@configurationproperties与javax.validation约束结合在一起在幕后工作。
数据元素错误scription:-
绑定到目标org.springframework.boot.context.properties.bind.bindexception:无法将“test”下的属性绑定到com.cgi.demo.myconfig$$enhancerbyspringcglib$$3dcd81ec失败:
供sprinboot医生参考:-
点击这里获取更多信息
2.7.9. @ConfigurationProperties验证
每当用spring的@validated注解对@configurationproperties类进行注解时,spring boot就会尝试验证这些类。可以直接在配置类上使用jsr-303javax.validation约束注解。为此,请确保类路径上有符合jsr-303的实现,然后向字段中添加约束注解。