来自本地文件系统和GIT存储库的Spring云配置属性 [英] spring cloud config properties from both local filesystem and git repo

查看:22
本文介绍了来自本地文件系统和GIT存储库的Spring云配置属性的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在使用Spring cloud config服务器为项目中使用的所有属性文件配置托管一个集中位置。 我使用以下命令尝试使用本地文件系统中的配置文件,运行正常:

spring.profiles.active=native
spring.cloud.config.server.native.searchLocations=file://${HOME}/Documents/test-config/cloud-config-properties/

我还使用了git repo,使用:spring.cloud.config.server.git.uri=ssh://xxxxxx.com:7999/test/cloud-config-properties.git

我想在我的项目中尝试使用这一组合。 示例-对于dev/test配置文件-我希望从本地文件系统使用,而对于生产-我希望使用Git存储库。 我在config服务器应用程序的application ation.properties中启用了gituri和本机配置文件。但是属性总是从本地文件系统中提取。这可能吗?

推荐答案

不支持开箱即用,但是可以解决此问题。您可以通过设置属性(在配置服务器中)来定义配置服务器的basedir,即它保存从远程服务器获取的文件的位置:

spring.cloud.config.server.git.basedir=<your_dir>
如果您正在使用docker,则可以将此目录映射到主机文件系统。

现在,如果您放入的任何文件与请求中的任何应用程序/配置文件相匹配,配置服务器都会拾取它。例如,您可以在其中放置一个名为application-dynamic ic.properties的文件,并让所有客户端使用dynamic作为最后一个配置文件,例如

spring.profiles.active=systesting,dynamic

这样,您将放入application-dynamic ic.properties中的所有内容都将覆盖您的配置存储库中定义的任何内容。

不过,需要注意的一点是,您只需要在配置服务器启动后添加该文件,因为它会在启动期间删除此文件夹。

不用说,在生产中这样做不是一种好的做法(例如,重新启动会导致删除文件),但对于测试/开发来说,这是最好的选择。

这篇关于来自本地文件系统和GIT存储库的Spring云配置属性的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆