当前位置: 首页 > 知识库问答 >
问题:

在Spring Boot时使用ConfigurationProperties获取空值

穆宾白
2023-03-14

我是Java world和Spring Boot的新手,我正在尝试通过ConfigurationProperties注释访问位于YAML文件中的一些配置值。

但是每当我试图访问服务中任何地方的配置值时,我得到的是一个空值。

my_config:
  test: "plop"

下面是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;
    }
}

使用它的验证器服务:

@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?
    }
}

我还在主类中添加了@EnableConfigurationProperties注释。

System.out.println(this.validationProperties.getTest());

共有1个答案

韩嘉祯
2023-03-14

尝试在主应用程序类或任何其他@configurationproperties(ValidationProperties.class)类上添加@enableConfigurationProperties

此外,在ValidationProperties上添加@component注释也会起作用。

不需要通过@value注释注入值,只需要通过注入的validationproperties对象的getter访问它

 类似资料:
  • 我的财产包括: 我的申请。属性,如: 测试是: 故障原因: 我尝试过很多事情,比如: 添加SpringBootTest将PropertySource替换为 TestPropertySource测试属性源 Spring开机版本为:2.2.2。释放 有人有主意吗?

  • 当我试图通过使用JavaBean数据源并在表中显示bean的字段值来生成报告时,PDF报告显示的是空值。 我有一个简单的bean(PersonBean)如下所示: 填充并返回bean集合的Person类如下所示:

  • http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd“version=”2.5“>

  • 我在尝试执行此代码时遇到以下错误。 java.lang.IllegalArgumentException:在“com.app.aggregatorappaconfiguration”上找不到ConfigurationProperties注释。在org.springframework.util.assert.NotNull(assert.java:115)~[spring-core-4.3.2.re

  • 我使用iReport设计了我的报告,并用Java编译了它。

  • 问题内容: 我想获取字段的字符串值(它们可以是长字符串或任何对象的类型), 如果一个字段为空,那么它应该返回空字符串,我用番石榴做过; 但是如果gearbox为null,则返回null!非空字符串,因为valueOf methdod返回字符串“ null”,这会导致错误。 有任何想法吗? EDIt:有100多个字段,我正在寻找易于实现的字段 问题答案: 您可以使用(Java 7中的标准): 从链接