0

我想向application.yml我的 Cloud Config 添加一个自定义属性。文件中的注释说它适用于所有共享配置。但是,当我这样做时,它会导致属性绑定到 JHipsters 自己的 ApplicationProperties 在类没有正确的可写属性时失败。

应用程序.yml

application:
    clients:
        - Foo

堆栈跟踪:

Caused by: org.springframework.boot.bind.RelaxedBindingNotWritablePropertyException: Failed to bind 'application.clients[0]' from 'file:central-config/localhost-config/application.yml' to 'clients[0]' property on 'io.github.jhipster.registry.config.ApplicationProperties'
4

2 回答 2

1

从 JHipster 的文档中:

特定于应用程序的属性 您生成的应用程序也可以有自己的 Spring Boot 属性。强烈建议这样做,因为它允许应用程序的类型安全配置,以及 IDE 中的自动完成和文档。

JHipster 在 config 包中生成了一个 ApplicationProperties 类,该类已经预先配置,并且已经在 application.yml、application-dev.yml 和 application-prod.yml 文件的底部进行了记录。您需要做的就是编写自己的特定属性。(强调我的)

您是否已完成该步骤并将自己的属性添加到ApplicationProperties.java? 看起来你应该有一个 type 的属性List<String> clients。如果你没有,那就是它失败的原因,因为它试图将配置属性绑定到ApplicationProperties类,但类不包含存储它的属性。

于 2017-08-23T16:00:29.370 回答
0

自定义 Spring 引导属性应始终在应用程序内的 @ConfigurationProperties 类中定义,以便可以在 yml 文件中设置它们的值。这在 Spring Boot 文档中有详细记录:

https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html

于 2017-08-23T21:50:14.627 回答