我是Java世界和Spring启动的新手,我正试图通过ConfigurationProperties注释访问位于YAML文件中的一些配置值.
但每当我尝试在服务中的任何位置访问配置值时,我都会得到一个空值.
这是application.yml文件:
my_config:
test: "plop"
Run Code Online (Sandbox Code Playgroud)
这是ValidationProperties配置类:
@Configuration
@ConfigurationProperties(prefix = "my_config")
public class ValidationProperties {
@NotNull
private String test;
public void setTest(String test) {
this.test = test;
}
public String getTest() {
return this.test;
}
}
Run Code Online (Sandbox Code Playgroud)
使用它的验证器服务:
@Service
public class MyValidator implements ConstraintValidator<MyConstraint, MyEntity> {
@Autowired
private ValidationProperties validationProperties;
@Value("${my_config.test}")
private String test;
@Override
public boolean isValid(MyEntity entity, ConstraintValidatorContext context) {
System.out.println(this.test); // null value, why?
}
}
Run Code Online (Sandbox Code Playgroud)
我还在@EnableConfigurationProperties我的主类中添加了注释.
我不确定哪个注释应该做什么,但我显然在这里遗漏了一些东西.此外,如果我尝试从配置文件的getter访问值,我会得到一个异常:
System.out.println(this.validationProperties.getTest());
Run Code Online (Sandbox Code Playgroud)
会得到我 …