在 Spring Boot 中,bootstrap.yml
和 application.yml
是两个不同的配置文件,它们有不同的加载时机和作用。以下是它们的主要区别:
-
加载时机:
bootstrap.yml
是在 Spring Boot 应用程序启动阶段的最早时机加载的,用于配置一些引导阶段需要的属性。通常,它用于配置与配置中心(如 Spring Cloud Config)相关的属性。application.yml
是在应用程序的上下文准备好之后加载的,用于配置应用程序的一般属性。
-
作用范围:
bootstrap.yml
主要用于配置应用程序的一些基础设施,如配置中心的配置、加密密钥等。它的属性可以在整个 Spring 上下文中使用。application.yml
主要用于配置应用程序的具体功能,包括数据库连接、服务端口、业务相关配置等。它的属性也可以在整个 Spring 上下文中使用。
-
覆盖关系:
- 如果存在相同的属性键,
bootstrap.yml
中的属性会覆盖application.yml
中的属性。这是因为bootstrap.yml
在加载时机上更早,所以具有更高的优先级。
- 如果存在相同的属性键,
-
使用场景:
bootstrap.yml
适用于一些比较敏感或基础的配置,例如配置中心的地址、加密相关的配置等。application.yml
适用于一般的应用程序配置,包括数据库、缓存、业务逻辑等。
下面是一个简单的示例,演示了如何使用这两个配置文件:
# bootstrap.yml
spring:
cloud:
config:
uri: http://config-server:8888
name: myapplication
# application.yml
server:
port: 8080
spring:
datasource:
url: jdbc:mysql://localhost:3306/mydatabase
username: root
password: secret
在上述示例中,bootstrap.yml
中配置了配置中心的地址和应用程序的名称,而 application.yml
中配置了应用程序的端口以及数据库连接等一般配置。在实际应用中,你可以根据需求合理使用这两个配置文件,使得配置更有层次性和可维护性。
Was this helpful?
0 / 0