spring clould config searchpaths不起作用的服务器目录组织

snz8szmq  于 2021-07-24  发布在  Java
关注(0)|答案(0)|浏览(250)

我所在的公司决定将springboot项目的所有配置属性集中在一个地方。为此,我们配置了 spring-cloud-config-server 指向github存储库。
在github上,我们为每个应用程序创建了一个文件夹。例子:

-https://github.com/myusername/my-spring-cloud-config-repo (Github's base folder)
    --my-project-1 (folder)
        ---my-project-1.properties (file)
        ---application-dev.properties (file)
        ---application-prod.properties (file)
    --my-project-2 (folder)
        ---my-project-2.properties (file)
        ---application-dev.properties (file)
        ---application-prod.properties (file)
        ---application-test.properties (file)

最初 application.properties 在我们的 spring-cloud-config-server 具有以下配置:

server.port=9090
spring.cloud.config.server.git.uri=https://github.com/myusername/my-spring-cloud-config-repo.git
spring.cloud.config.server.git.username=myusername
spring.cloud.config.server.git.password=mypassword
spring.cloud.config.server.git.skip-ssl-validation=true
spring.cloud.config.server.git.clone-on-start=true
spring.cloud.config.server.git.force-pull=true
spring.cloud.config.server.git.searchPaths=*/**

因此,一旦启动服务器,我们就可以发送http请求:

http://localhost:9090/my-project-2/test

它将成功地返回上的所有配置 my-project-2.properties 以及 application-test.properties 内部 my-project-2 文件夹,这是我们想要的行为。
问题开始于我们发送:

http://localhost:9090/my-project-2/dev

因为它会返回上的所有配置 my-project-2.properties 以及 application-dev.properties 内部 my-project-2 文件夹也是 application-dev.properties 文件来自 my-project-1 文件夹也是。这是因为 searchPaths=*/** 强制配置服务器在存储库的所有文件夹中搜索“dev”文件,这样每次客户端启动时都会导致冲突。
为了解决这个问题,根据这里和这里,我可以用 wildcardssearchPaths 配置:

spring.cloud.config.server.git.searchPaths={application}/{profile}

但它不起作用。。。我也尝试了很多组合:

searchPaths={application}/{profile}.properties
searchPaths={application}/**
searchPaths=/{application}/{profile}
searchPaths='{application}/{profile}'
searchPaths='{application}/{profile}.properties'
searchPaths='{application}'/'{profile}'

(我尝试了基于spring云配置searchpaths答案的单引号想法)
但他们都不为我工作。我应该如何配置 searchPaths 为了达到我的目的?提前谢谢。

暂无答案!

目前还没有任何答案,快来回答吧!

相关问题