SpringCloud中application.yml和bootstrap.yml区别说明
下文笔者讲述SpringCloud中application.yml和bootstrap.yml的区别说明,如下所示
application和bootstrap简介
application.yml和properties文件 都是配置文件 功能一致
application.yml和bootstrap.yml的区别为: application和bootstrap的加载顺序。 Bootstrap.yml(bootstrap.properties)在application.yml(application.properties)之前加载 就像application.yml一样 但是用于应用程序上下文的引导阶段
两者常见的应用场景
当使用Spring Cloud Config Server 应该在 bootstrap.yml里面指定 spring.application.name和spring.cloud.config.server.git.uri 一些加密/解密的信息 技术上 bootstrap.yml由父Spring ApplicationContext加载 父ApplicationContext被加载到使用application.yml的之前 当使用Spring Cloud时 配置信息一般是从config server加载 为获取得配置信息(如密码等) 需要一些提早的或引导配置 因此,把 config server 信息放在 bootstrap.yml,用来加载真正需要的配置信息。
属性覆盖说明
启动上下文时 Spring Cloud会创建一个Bootstrap Context 作为Spring应用的Application Context的父上下文 初始化的时 Bootstrap Context负责从外部源加载配置属性并解析配置 这两个上下文共享一个从外部获取的Environment Bootstrap属性有高优先级 默认情况下,它们不会被本地配置覆盖 Bootstrap context和Application Context有着不同的约定 所以新增了一个bootstrap.yml文件 而不是使用application.yml (或者application.properties) 保证Bootstrap Context和Application Context配置的分离
版权声明
本文仅代表作者观点,不代表本站立场。
本文系作者授权发表,未经许可,不得转载。