小编ben*_*1ps的帖子

在Spring启动时使用ConfigurationProperties时获取空值

我是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)

会得到我 …

java spring

5
推荐指数
1
解决办法
3003
查看次数

标签 统计

java ×1

spring ×1