bootstrap与application区别和应用场景
最近在配置nacos的时候发现,使用application.yml配置nacos。它会首先去本地的nacos,而我本地没有nacos,于是他就发了疯的链接我本地nacos????,打开远程nacos管理界面发现,程序已经注册上去了。然后去springCloud官网【https://www.springcloud.cc/spring-cloud-greenwich.html#_the_bootstr
最近在配置nacos的时候发现,使用application.yml配置nacos。它会首先去本地的nacos,而我本地没有nacos,于是他就发了疯的链接我本地nacos🙂,打开远程nacos管理界面发现,程序已经注册上去了。
然后去springCloud官网【https://www.springcloud.cc/spring-cloud-greenwich.html#_the_bootstrap_application_context】查询发现,Bootstrap应用程序上下文
Spring Cloud应用程序通过创建“ bootstrap ”上下文来运行,该上下文是主应用程序的父上下文。它负责从外部源加载配置属性,并负责解密本地外部配置文件中的属性。这两个上下文共享一个Environment
,它是任何Spring应用程序的外部属性的来源。默认情况下,引导程序属性(不是bootstrap.properties
,而是引导程序阶段加载的属性)具有较高的优先级,因此它们不能被本地配置覆盖。
引导上下文使用与主应用程序上下文不同的约定来定位外部配置。可以使用bootstrap.yml
来代替application.yml
(或.properties
),而将引导程序和外部环境的外部配置很好地分开。
如果您的应用程序需要来自服务器的任何特定于应用程序的配置,则最好设置spring.application.name
(在bootstrap.yml
或application.yml
中)。为了将属性spring.application.name
用作应用程序的上下文ID,必须在bootstrap.[properties | yml]
中进行设置。
如果要检索特定的配置文件配置,还应该在bootstrap.[properties | yml]
中设置spring.profiles.active
。
您可以通过设置spring.cloud.bootstrap.enabled=false
来完全禁用引导过程。
自己总结了下,也不知对不对,
bootstrap.yml(properties)用来在程序引导时执行,应用于更加早期配置信息读取。
eg:可以来配置application.yml中使用到的参数
application.yml(properties) 应用程序特有配置信息。
eg:可以用来配置后续各个模块中需使用的公共参数
bootstrap.yml 优先级高于 application.yml 加载
【如有错误,希望大佬们指正】
更多推荐
所有评论(0)