在spring引导中将属性放在application.yml或bootstrap.yml之间有什么不同?
在spring引导中将属性放在application.yml或bootstrap.yml之间有什么不同? 在logging.config的情况下,应用程序工作不同。
我刚刚问过Spring Cloud
人,我想我应该分享我在这里的信息。
bootstrap.yml
在application.yml
之前加载。
它通常用于以下内容:
- 当使用Spring Cloud Config Server时,你应该在
bootstrap.yml
指定spring.application.name
和spring.cloud.config.server.git.uri
- 一些
encryption/decryption
信息
从技术上讲, bootstrap.yml
是由父级的Spring ApplicationContext
加载的。 那个父ApplicationContext
加载在使用application.yml
。
bootstrap.yml
或bootstrap.properties
只有在使用Spring Cloud的情况下才需要使用它,而且应用程序的configuration存储在远程configuration服务器上(例如Spring Cloud Config Server)。
从文档:
Spring Cloud应用程序通过创build“引导”(bootstrap)上下文来运行,该上下文是主应用程序的父上下文。 开箱即用,它负责从外部源加载configuration属性 ,并且还解密本地外部configuration文件中的属性。
请注意, bootstrap.yml
或bootstrap.properties
可以包含额外的configuration(例如默认值),但通常您只需要在这里放置引导configuration。
通常它包含两个属性:
- configuration服务器的位置(
spring.cloud.config.uri
) - 应用程序的名称(
spring.application.name
)
启动后,Spring Cloud使用应用程序的名称对configuration服务器进行HTTP调用,并取回该应用程序的configuration。
application.yml
或application.properties
包含标准应用程序configuration – 通常是默认configuration,因为在引导过程中检索的任何configuration将覆盖此处定义的configuration。