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

SpringCloud - 配置文件 application 和 bootstrap 的区别

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

SpringCloud - 配置文件 application 和 bootstrap 的区别

官方文档解释

SpringCloud 官方文档关于 38. Spring Cloud Context 的介绍

翻译:Spring Boot 对于如何使用 Spring 构建应用有自己的见解。例如,它具有用于公共配置文件的约定的位置(resources 目录),并具有用于公共管理和监视任务的端点。Spring Cloud 在此基础上构建,并添加了一些系统中很多组件会用到或者偶尔需要的特性。

翻译:一个 Spring Cloud 应用通过创建一个 ”bootstrap“ 上下文来运行,它是主应用的父上下文。此上下文负责从外部源加载配置属性,并对本地外部配置文件中的属性进行解密。这两个上下文(parent context,main application context)共享一个 Environment,它是任何 Spring 应用的外部属性源。默认情况下,bootstrap properties(不是 bootstrap.properties 但是 properties 是在 bootstrap 阶段加载的)以高优先级添加,因此他们不能被本地配置(例如:resources 目录下的配置文件中的配置)重写。

翻译:引导上下文与主应用上下文使用不同的约定来加载外部配置。使用 bootstrap.yml 替换 application.yml 或 application.properties,保持bootstrap 和 main 上下文很好的分开。下面是一个例子:

// 这是一段加载 `Spring Cloud Config` 分布式配置中心的配置

spring:
  application:
    name: foo
  cloud:
    config:
      uri: ${SPRING_CONFIG_URI:http://localhost:8888}

翻译:如果你的应用需要任何来自服务器的任何特定于应用的配置,你应该设置一个 spring.application.name 。如果要将属性 spring.application.name 作为应用的上下文ID,就必须设置在 bootstrap.yml|properties 中。
如果你想要加载特定环境的配置,也需要设置 spring.profiles.active 在 bootstrap.yml|properties 中
你也可以完全禁用 bootstrap 进程通过设置 spring.cloud.bootstrap.enabled=false (例如在程序启动参数中)

更多关于 Spring Cloud Context 的细节可以查看官方文档

总结

通过上面官方文档的解释,我们知道了以下几点:

  1. bootstrap context 和 main application context 公用一个 Environment,它是任何 Spring 应用的外部属性来源
  2. bootstrap 里面的属性会 优先加载,且不能被本地配置重写
  3. bootstrap.yml|properties 和 application.yml|properties 都可以用来配置属性,可以同时存在
  4. bootstrap.yml|properties 一般用于 Spring Cloud 应用、配置不能覆盖的场景、配置加解密场景
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/966775.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

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

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