栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Spring里、配置application.yaml、bootstrap.yaml application.properties、bootstrap.properties他们的区别。

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Spring里、配置application.yaml、bootstrap.yaml application.properties、bootstrap.properties他们的区别。

Spring里、配置application.yaml、bootstrap.yaml application.properties、bootstrap.properties他们的区别。 一、先从后缀来讲:

​ SpringBoot默认支持properties和yaml(或者yml)两种格式的配置文件。前者格式简单,但是只支持键值对。如果需要表达列表,最好使用yaml格式。也就是yaml 中的数据是有序的,properties 中的数据是无序的,在一些需要路径匹配的配置中,顺序就显得尤为重要。虽然默认为properties,但现在多用yaml。

​ 如果工程中同时存在application.properties文件和 application.yaml文件,yaml文件会先加载,而后加载的properties文件会覆盖yaml文件。

二、在分析前缀:

​ bootstrap.yml 用来程序引导时执行,应用于更加早期配置信息读取。可以理解成系统级别的一些参数配置,这些参数一般是不会变动的。一旦bootStrap.yml 被加载,则内容不会被覆盖。

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

三、覆盖分析

启动上下文时,Spring Cloud 会创建一个 Bootstrap Context,作为 Spring 应用的 Application Context 的父上下文。

初始化的时候,Bootstrap Context 负责从外部源加载配置属性并解析配置。这两个上下文共享一个从外部获取的 Environment。Bootstrap 属性有高优先级,默认情况下,它们不会被本地配置覆盖。

也就是说如果加载的 application.yml 的内容标签与 bootstrap 的标签一致,application 也不会覆盖 bootstrap,而 application.yml 里面的内容可以动态替换。

四、应用场景分析:

​ SpringCloud配置时、这时需要在 bootstrap.yml 配置文件中指定 spring.application.name 和 spring.cloud.nacos,添加连接到配置中心的配置属性来加载外部配置中心的配置信息。

spring:
  application:
    name: yxmall
  cloud:
    nacos:
      config:
        server-addr: 192.168.56.10:8848
        namespace: 93ab9b83-cca4-48b5-abad-8a46f12ac0ba
        ext-config:
          - dataId: redis.yml
          - dataId: druidDatasourceView.yml
        file-extension: yml
      discovery:
        namespace: 93ab9b83-cca4-48b5-abad-8a46f12ac0ba
        server-addr: 192.168.56.10:8848
  jackson:
    date-format: yyyy-MM-dd HH:mm:ss
    time-zone: GMT+8


​ 而正常基本application.yaml满足单体架构配置要求。优先选用yaml。带缩进的格式对于配置的显示更加直观。当然 yaml 配置也不是万能的,例如,yaml 配置目前不支持 @PropertySource 注解。使用时注意即可。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/863017.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号