【问题标题】:Spring boot loading nested property with Number as keySpring Boot 以 Number 为键加载嵌套属性
【发布时间】:2018-10-12 14:28:07
【问题描述】:

我的 Spring Boot 应用程序中有嵌套属性。例如:

 topics:
  target:
    abc_1:
      12345678:
        key: value_1
      default:
        key: value_1

我尝试在我的班级中使用@Value 访问该值,如下所示:

@Value("${topics.target.abc_1.12345678.key}")
private String key;

但我在启动应用程序时遇到以下异常。

org.springframework.beans.factory.BeanCreationException: Error creating bean with name '***': Injection of autowired dependencies failed; nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'topics.target.abc_1.12345678.key' in value "${topics.target.abc_1.12345678.key}"

at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:378)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1341)
at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireBeanProperties(AbstractAutowireCapableBeanFactory.java:393)

但令人惊讶的是,当我尝试加载 topics.target.abc_1.default.key 时,它可以正常工作。在嵌套结构的属性中将数字作为键是否有任何限制? 我确信具有数字值的键在非嵌套结构中没有任何问题。

【问题讨论】:

  • 肯定有其他问题(您没有发布)。此代码works fine.
  • OP 正在使用 YAML,所以不确定您的示例项目是苹果对苹果的比较
  • 感谢您的试用。我用你的回购尝试了 yaml。它返回相同的错误
  • @Thiru 你能创建一个 repo 以便我们重现你的问题吗?

标签: java spring spring-boot spring-profiles spring-properties


【解决方案1】:

问题是由于 abc_1 键之一中的 "_"

从属性中删除“_”后,一切似乎都正常。

【讨论】:

    猜你喜欢
    • 2019-08-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-12-21
    • 1970-01-01
    • 2019-10-18
    • 2022-06-28
    • 2018-06-25
    相关资源
    最近更新 更多