• springcloud的配置文件的读取顺序


    SpringBoot默认支持properties和YAML两种格式的配置文件。前者格式简单,但是只支持键值对。如果需要表达列表,最好使用YAML格式。SpringBoot支持自动加载约定名称的配置文件,例如application.yml。如果是自定义名称的配置文件,就要另找方法了。可惜的是,不像前者有@PropertySource这样方便的加载方式,后者的加载必须借助编码逻辑来实现。

    一、bootstrap.yml(bootstrap.properties)与application.yml(application.properties)执行顺序

    bootstrap.yml(bootstrap.properties)用来程序引导时执行,应用于更加早期配置信息读取,如可以使用来配置application.yml中使用到参数等

    application.yml(application.properties) 应用程序特有配置信息,可以用来配置后续各个模块中需使用的公共参数等。

    bootstrap.yml 先于 application.yml 加载

    二、典型的应用场景如下:

    当使用 Spring Cloud Config Server 的时候,你应该在 bootstrap.yml 里面指定 spring.application.name 和 spring.cloud.config.server.git.uri

    和一些加密/解密的信息

    技术上,bootstrap.yml 是被一个父级的 Spring ApplicationContext 加载的。这个父级的 Spring ApplicationContext是先加载的,在加载application.yml 的 ApplicationContext之前。

    为何需要把 config server 的信息放在 bootstrap.yml 里?

    当使用 Spring Cloud 的时候,配置信息一般是从 config server 加载的,为了取得配置信息(比如密码等),你需要一些提早的或引导配置。

    因此,把 config server 信息放在 bootstrap.yml,用来加载真正需要的配置信息。

    git仓库中配置文件的读取顺序:

    有几种http访问的方式:

    (1)首先根据application的名称来寻找,即application的名字(比如,即项目的名称abc).*来查找文件。

    (2)如果没有对应的名字,则读取application.properties里面的内容,如果这个也没有,则返回错误。

    比如git仓库中的master分支上面有两个配置文件:foobar-dev.yml和application.yml。

    这两个文件中都有一个配置,名称相同,但是内容不同,假设foobar-dev.yml中的是profile=abc-foobar,application.yml中的是profile=abc-application

    我们访问的时候比如:localhost:8080/master/foobar-dev.yml,则命中到foobar-dev.yml,读取的是abc-foobar

    如果访问localhost:8080/master/foobar-default.yml,这个文件在git中是不存在的,则命中到application.yml中,读取的是profile=abc-application

    总结:这里有个 优先级,先找对应名称的,如果没有则找默认的application.yml的内容,如果再没有,那就没办法了。

    不同的模块微服务模块使用自己的配置,各自团队自己管理自己的配置,不同的环境配置不用的配置文件如何实现:

    一种环境一个仓库

    (1)通配符的方式(个人感觉这种方式比较好)

    一个微服务对应一个git仓库:微服务的名称与git仓库的名称建立一个对应关系,这样子可以采用通配符的方式

    隔离性比较好,不影响团队之间的工作。

    一个环境一个文件,容易管理。

    (2)模式匹配的方式(个人感觉比较麻烦)

  • 相关阅读:
    列表基本操作——1
    条件判断与嵌套
    数据拼接与数据转换
    变量与赋值
    打印数与type()函数
    print()函数与打印字符串
    arduino开发ESP8266学习笔记二----按键控制LED灯
    arduino开发ESP8266学习笔记一 ----点亮一个LED灯
    无线充电
    EMC设计总结
  • 原文地址:https://www.cnblogs.com/fengli9998/p/8921693.html
Copyright © 2020-2023  润新知