bootstrap.yml 和 application.yml使用上有什么讲究?有先后加载顺序的问题吗?
1 个回答
只有行动才能说明一切。楚风是的,`bootstrap.yml` 和 `application.yml` 在 Spring Boot 尤其是 Spring Cloud 项目中有明确的**使用场景区别**和**加载顺序差异**: ### 一、加载顺序 Spring Boot 的配置加载顺序如下(简化): ``` bootstrap.yml → application.yml ``` 也就是说: - **`bootstrap.yml` 比 `application.yml` 更早加载** - `bootstrap.yml` 中的配置优先级高(因为它在更早的阶段初始化) ### 二、使用场景的区别 | 文件名 | 加载阶段 | 用途 | |------------------|------------------|------| | `bootstrap.yml` | 应用上下文初始化之前 | 用于加载**外部配置中心**(如 Nacos、Apollo、Spring Cloud Config Server)、设置应用名、注册中心地址等 | | `application.yml`| 应用上下文初始化时 | 用于常规配置,如端口号、数据库、日志级别、业务参数等 | ### 三、典型配置内容对比 #### `bootstrap.yml` 一般配置: ```yaml spring: application: name: my-service cloud: nacos: config: server-addr: 127.0.0.1:8848 ``` #### `application.yml` 一般配置: ```yaml server: port: 8080 spring: datasource: url: jdbc:mysql://localhost:3306/test username: root password: root ``` ### 四、注意事项 1. **不要混用不该放的配置**: - 配置中心、注册中心的地址放 `bootstrap.yml`。 - 服务自己的配置放 `application.yml`。 2. **Spring Boot 2.4+** 开始推荐使用 `spring.config.import`(如导入 `configserver:`),此时 `bootstrap.yml` 会逐渐被边缘化,但在老版本 Spring Cloud 项目中仍然常见。 3. 如果你发现配置不生效,确认是不是放错了文件。 如你使用的是 Spring Cloud,并需要从 Nacos 等配置中心加载配置,**必须用 `bootstrap.yml` 或 `bootstrap.properties`**,否则无法在应用初始化前完成外部配置加载。发布于 2025-03-31 16:20 •IP属地 广西举报评论收藏
公众号进入网站体验更佳

