read属性

xqk2d5yq  于 2021-07-24  发布在  Java
关注(0)|答案(1)|浏览(290)

我在springboot2.3中有下面的实现。但当我把它移植到springboot2.4时。属性未从配置服务器读取。
代码

@ConditionalOnProperty({"app.xzy.hosts"})
public class clientConfig { 
 // implementation
}

引导.yml

spring:
 cloud:
  config:
   uri: http://main-config-server.com
   username: user
   password: pass
   fail-fast: true

应用程序.yml

app:
 xyz:
  hosts: ${app.main.config.hosts}

配置服务器中的application.yml

app:
 main:
  config
   hosts: http://myhost.com

这个实现在springboot2.3中运行良好。但是在升级到springboot2.4之后,在启动时出现了以下错误。

Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder 'app.xzy.hosts' in value "${app.main.config.hosts}"
at org.springframework.util.PropertyPlaceholderHelper.parseStringValue(PropertyPlaceholderHelper.java:178)
at org.springframework.util.PropertyPlaceholderHelper.replacePlaceholders(PropertyPlaceholderHelper.java:124)
at org.springframework.core.env.AbstractPropertyResolver.doResolvePlaceholders(AbstractPropertyResolver.java:239)
at org.springframework.core.env.AbstractPropertyResolver.resolveRequiredPlaceholders(AbstractPropertyResolver.java:210)
nbewdwxp

nbewdwxp1#

终于解决了问题。
默认情况下,bootstrap.yml文件不再启用。您需要通过在SpringCloud2020.0.0中添加新的依赖项来启用它,它解决了我的问题。

<dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-bootstrap</artifactId>
    </dependency>

参考文献:https://spring.io/blog/2020/10/07/spring-cloud-2020-0-0-m4-aka-ilford-is-available

相关问题