SpringCloud Config Server中{application}等占位符使用场景设置默认拉去分支

Spring Cloud Config服务器支持一个Git仓库URL,其中包含{application}和{profile}(以及{label})的占位符。

1.各个占位符所代表的含义

  • application: 表示微服务名称,即配置的spring.application.name
  • profile: 表示当前的环境,local、feature、dev、test、prod
  • label: 表示git仓库分支,feature、develop、test、master,当然默认的话是master

记住,这三个标签是占位符(先占住一个固定的位置,等着你再往里面添加内容的符号)在Spring Cloud Config中的应用场景如下:

2.占位符请求配置文件的形式

在启动Config Server后去请求获取Git Repo中的配置文件时有以下几种请求形式。

1

2

3

4

5

/{application}/{profile}[/{label}]

/{application}-{profile}.yml

/{label}/{application}-{profile}.yml

/{application}-{profile}.properties

/{label}/{application}-{profile}.properties

3.示例讲解

如你的配置文件的名字叫abc-config-server-dev.yml,application(微服务名称)是abc-config-server,profile(环境)是dev。
那么我们可以通过以下的请求地址去获取配置资源

  • http://localhost:8888/abc-config-server/dev #不显示配置默认label的话,默认获取master分支上的abc-config-server-dev.yml
  • http://localhost:8888/abc-config-server/dev/develop #获取develop分支上的abc-config-server-dev.yml资源
  • http://localhost:8888/abc-config-server-dev.yml #直接获取abc-config-server-dev.yml资源(返回信息只有配置文件内的信息没有多余的Git信息)
  • http://localhost:8888/develop/abc-config-server-dev.yml #获取develop分支上的abc-config-server-dev.yml资源

4.占位符在配置文件中使用场景:

一、利用application去占位git uri )轻松支持“每个应用程序的一个repo”策略。

1

2

3

4

5

6

spring:

  cloud:

    config:

      server:

        git:

          uri: https://github.com/lingyejun/{application} 

如我们从http://localhost:8888/abc-config-server/dev去获取的话,那么会将application自动占位为abc-config-server,即去https://github.com/lingyejun/abc-config-server这个仓库的根目录下找abc-config-server-dev.yml资源

二、利用占位符去当前仓库根目录下找配置文件,找不到则去占位符对应的目录下找 

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

spring:

  application:

    name: config-server-demo

  cloud:

    config:

      server:

        git:

          uri: https://github.com/lingyejun/{application}

          username: lingyejun

          password: password

          repos:

            abc-client:

              pattern: abc* #对application name的模式匹配

              uri: https://github.com/lingyejun/configserver

              username: lingyejun

              password: password

              search-paths: '{application}' #注意:这里要加引号不然会因为yml格式不合法而导致配置不生效

              clone-on-start: true #启动时自动clone

              default-label: develop #设置默认分支

我们请求http://localhost:8888/abc-config-server/dev,application为abc-config-server匹配到abc-config-server的pattern模式,然后去https://github.com/lingyejun/configserver的develop分支拉取abc-config-server-dev.yml文件,如果在根目录下找不到的话则会去abc-config-server文件夹在去找。
注意:search-paths: '{application}'这里要加引号不然会因为yml格式不合法而导致配置不生效。

5.设置默认分支default-lable不生效的问题?

之前用.properties文件配置默认分支

1

2

3

4

5

spring.cloud.config.server.git.uri=https://github.com/lingyejun/configserver

spring.cloud.config.server.git.username=lingyejun

spring.cloud.config.server.git.password=password

spring.cloud.config.server.git.default-label=develop

spring.cloud.config.server.git.search-paths=abc-config-server

spring.cloud.config.server.git.default-label=develop 用这个属性是可以的,可以将默认分支更改为develop,但是换成.yml格式的后就不生效了

1

2

3

4

5

6

7

8

9

10

11

12

spring:

  application:

    name: config-server-demo

  cloud:

    config:

      server:

        git:

          uri: https://github.com/lingyejun/{application}

          username: lingyejun

          password: password

          default-label: develop

          search-paths: abc-config-server

真的不生效了,什么仇什么怨!

经过我百般尝试之后发现将这个标签放到repo标签下就是生效的

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

spring:

  application:

    name: config-server-demo

  cloud:

    config:

      server:

        git:

          uri: https://github.com/lingyejun/{application}

          username: lingyejun

          password: password

          search-paths: abc-config-server

          repos:

            phihome-client:

              pattern: abc*

              uri: https://github.com/lingyejun/{application}

              username: lingyejun

              password: password

              default-label: develop #放在这里就是OK的

              search-paths: '{application}'

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值