spring cloud配置searchPaths

时间:2016-01-27 00:07:49

标签: spring-boot spring-cloud

我正在考虑通过Spring Cloud Config实现12factor方法来外化配置,但是我无法按照预期使用searchPaths来使用通配符。

文档http://cloud.spring.io/spring-cloud-config/spring-cloud-config.html#_spring_cloud_config_server提到可以在searchPaths变量中使用通配符{application},{label},{profile},以便“您可以隔离路径中的目录,并选择策略这对你有意义(例如每个应用程序的子目录,或每个配置文件的子目录)。

我希望有一个git仓库,每个配置文件都有子目录(然后是每个应用程序,或每个应用程序的子目录(然后是配置文件)。

e.g。

body

但是,当我在searchPaths中使用任何通配符{application}或{profile}时,它在git repo中找不到数据,或者连接选项根本无法启动。

有没有人有这个我可以参考的实际例子? 干杯 罗伊

3 个答案:

答案 0 :(得分:2)

使用单引号,它可以正常工作。

searchPaths: '{application}'

希望如果有人遇到这个问题,这会有所帮助。

答案 1 :(得分:0)

实际上,用户指南中没有一个示例显示searchPaths列表中使用的模式。我不认为GIT后端支持该功能(但{application}实际上是文件系统后端的默认功能,即在“原生”配置文件中工作的功能。

答案 2 :(得分:0)

除上述内容外,更重要的是,如果要读取每个环境在多个应用程序之间共享的通用配置(例如application.yml)。然后将application.yml放在一个文件夹中(例如-common),然后配置如下:

searchPaths:
  - '{application}'
  - common

{application}解析为配置客户端bootstrap.yaml中的“ spring.application.name”值。

参考:closest