【发布时间】:2021-01-26 09:57:32
【问题描述】:
我目前在 Spring Boot 2.3 中有以下实现。但是当我将其迁移到 Spring Boot 2.4 时。属性未从配置服务器读取。
代码
@ConditionalOnProperty({"app.xzy.hosts"})
public class clientConfig {
// implementation
}
bootstrap.yml
spring:
cloud:
config:
uri: http://main-config-server.com
username: user
password: pass
fail-fast: true
application.yml
app:
xyz:
hosts: ${app.main.config.hosts}
配置服务器中的application.yml
app:
main:
config
hosts: http://myhost.com
此实现在 Spring Boot 2.3 中运行良好。但是在升级到 Spring Boot 2.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)
【问题讨论】:
-
用于指定配置服务器 url 的参数名称是什么
-
@MohdAlomar 我已经用属性更新了问题。
标签: java spring spring-boot microservices