bootstrap.yml作用
bootstrap.yml
(或bootstrap.properties
)在Spring Boot应用程序中起着关键的作用,特别是在涉及外部配置和Spring Cloud的场景中。以下是关于bootstrap.yml
的主要作用:
-
加载顺序优先:
bootstrap.yml
在Spring Boot应用程序启动时的加载顺序优先于application.yml
(或application.properties
)。这意味着bootstrap.yml
中的配置将首先被加载,为应用程序提供早期的配置需求。
-
配置外部资源:
- 主要用于加载应用程序上下文之前的外部配置文件,这些配置通常在应用程序启动的早期阶段就需要用到。例如,连接到Spring Cloud Config Server的配置、加密/解密信息、连接到外部数据库的配置等。
-
作为父上下文:
- 通过
bootstrap.yml
中的配置,可以将Spring Boot应用程序的应用上下文作为父上下文,并将它们与其他应用程序上下文分离。这使得父上下文中的Bean可以在子上下文中继承并覆盖,为不同环境提供了配置灵活性。
- 通过
-
配置优先级:
- 由于
bootstrap.yml
的加载顺序优先,当与其他配置文件(如application.yml
)中存在同名属性时,bootstrap.yml
中定义的属性将优先生效。
- 由于
-
系统级配置:
- 可以理解成系统级别的一些参数配置,这些参数通常是固定或较少变动的,如数据库连接、消息队列连接等。
-
支持Profile:
- 在Spring Cloud Config中,除了
bootstrap.yml
,还有bootstrap-dev.yml
(开发环境)和bootstrap-prod.yml
(生产环境)等针对不同环境的配置文件。这些文件可以根据当前激活的Profile来加载对应的配置。
- 在Spring Cloud Config中,除了
-
动态配置支持(与Spring Cloud Config结合):
- 当与Spring Cloud Config结合使用时,
bootstrap.yml
中配置的信息(如Config Server的地址)可以帮助应用程序从Config Server加载动态的配置信息,实现配置的外部化和集中管理。
- 当与Spring Cloud Config结合使用时,
-
简化配置:
- 通过
bootstrap.yml
中的自动配置,可以简化应用程序的配置过程,减少手动配置的工作量。
- 通过
总结来说,bootstrap.yml
在Spring Boot应用程序中主要用于加载应用程序上下文之前的外部配置、作为父上下文、提供系统级配置以及支持不同环境的Profile配置。同时,与Spring Cloud Config结合使用时,它还可以帮助应用程序从外部服务器加载动态配置,提高配置的灵活性和可管理性。