Spring cloud配置环境变量插值

时间:2016-07-08 08:09:15

标签: spring-boot spring-cloud-config

我在 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成为一切的中央存储库。你有什么建议吗?

1 个答案:

答案 0 :(得分:0)

我建议你尝试用$ {mysql.user}和$ {mysql.password}替换$ {MYSQL_USER}和$ {MYSQL_PASSWORD} - 这样你将依赖Spring Boot的默认属性替换。

虽然我不确定配置服务器是否支持您尝试使用的内容,但我从未尝试过类似的用例,如果我建议的方法不起作用,请使用解决方案回写:)