我在我的Spring 项目中使用了,我不知道如何插值环境变量。
例如,我在MYSQL_PASSWORD中设置了config server变量(作为环境变量),并且希望从其他客户端获得它,而不需要在所有客户机中重新定义变量。这是我的配置:
service.yml (在配置服务器中)
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_*** )。
这对我来说很奇怪,因为我希望配置服务器成为所有东西的中央存储库。你有什么建议吗?
发布于 2016-07-08 09:49:27
我建议您尝试将${MYSQL_USER}和${MYSQL_PASSWORD}替换为${mysql.user}和${mysql.password} -这样您将依赖Spring的默认属性替换。
虽然我不确定配置服务器是否支持您试图使用的内容,但我从未尝试过类似的用例,如果我建议的方法不起作用,请给出一个解决方案。)
https://stackoverflow.com/questions/38261864
复制相似问题