我在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)
1条答案
按热度按时间nbewdwxp1#
终于解决了问题。
默认情况下,bootstrap.yml文件不再启用。您需要通过在SpringCloud2020.0.0中添加新的依赖项来启用它,它解决了我的问题。
参考文献:https://spring.io/blog/2020/10/07/spring-cloud-2020-0-0-m4-aka-ilford-is-available