在spring引导中将属性放在application.yml或bootstrap.yml之间有什么不同?

在spring引导中将属性放在application.yml或bootstrap.yml之间有什么不同? 在logging.config的情况下,应用程序工作不同。

我刚刚问过Spring Cloud人,我想我应该分享我在这里的信息。

bootstrap.ymlapplication.yml之前加载。

它通常用于以下内容:

  • 当使用Spring Cloud Config Server时,你应该在bootstrap.yml指定spring.application.namespring.cloud.config.server.git.uri
  • 一些encryption/decryption信息

从技术上讲, bootstrap.yml是由父级的Spring ApplicationContext加载的。 那个父ApplicationContext加载在使用application.yml

bootstrap.ymlbootstrap.properties

只有在使用Spring Cloud的情况下才需要使用它,而且应用程序的configuration存储在远程configuration服务器上(例如Spring Cloud Config Server)。

从文档:

Spring Cloud应用程序通过创build“引导”(bootstrap)上下文来运行,该上下文是主应用程序的父上下文。 开箱即用,它负责从外部源加载configuration属性 ,并且还解密本地外部configuration文件中的属性。

请注意, bootstrap.ymlbootstrap.properties 可以包含额外的configuration(例如默认值),但通常您只需要在这里放置引导configuration。

通常它包含两个属性:

  • configuration服务器的位置( spring.cloud.config.uri
  • 应用程序的名称( spring.application.name

启动后,Spring Cloud使用应用程序的名称对configuration服务器进行HTTP调用,并取回该应用程序的configuration。

application.ymlapplication.properties

包含标准应用程序configuration – 通常是默认configuration,因为在引导过程中检索的任何configuration将覆盖此处定义的configuration。