我在 Spring Boot 项目中使用spring-cloud-config
并且我不了解如何插入环境变量。
例如,我在MYSQL_PASSWORD
中设置了config server
变量(作为环境变量),我想从其他客户端获取它,而不是在所有客户端中重新定义变量。这是我的配置:
service.yml(在config-server中)
spring:
datasource:
url: jdbc:mysql://mysql:3306/${MYSQL_DATABASE}?autoReconnect=true&useSSL=false
username: ${MYSQL_USER}
password: ${MYSQL_PASSWORD}
bootstrap.yml(进入客户端)
spring:
application:
name: event-service
cloud:
config:
uri: http://config-service:8888
fail-fast: true
如果我使用此配置启动服务,则不会插入占位符${MYSQL_***}
,并且显然无法连接到数据库。
要使其工作,我必须做的是在客户端中定义环境变量,如MYSQL_***
。
这对我来说很奇怪,因为我希望config-server成为一切的中央存储库。你有什么建议吗?
答案 0 :(得分:0)
我建议你尝试用$ {mysql.user}和$ {mysql.password}替换$ {MYSQL_USER}和$ {MYSQL_PASSWORD} - 这样你将依赖Spring Boot的默认属性替换。
虽然我不确定配置服务器是否支持您尝试使用的内容,但我从未尝试过类似的用例,如果我建议的方法不起作用,请使用解决方案回写:)