| 文件 | 归属 | 核心作用 | 关联工具 |
|---|---|---|---|
pom.xml |
Maven | 管理项目依赖、编译、打包 | Maven、Spring Boot、所有 jar 包 |
bootstrap.yml |
Spring Cloud | 微服务引导配置(优先级最高) | Spring Cloud、配置中心 (Nacos)、注册中心 |
application.yml |
Spring Boot | 项目应用配置(核心) | Spring Boot、数据库、Redis、MyBatis 等 |
一、pom.xml (Maven 核心文件)
1. 定位
项目的 「依赖清单 + 构建说明书」,所有 Java 项目必须有,和代码无关,只管「项目需要什么 jar 包、怎么编译运行」。
2. 里面装什么?
- 项目基本信息:名称、版本、打包方式(jar/war)
- 依赖管理(最核心) :声明项目需要的所有第三方包
- 比如你用的:
MyBatis、MapStruct、HuTool、MinIO、MySQL驱动、Spring Boot
- 比如你用的:
- 构建插件:编译、打包、运行的工具(如 Spring Boot 打包插件)
- 版本管理:统一管理所有依赖的版本号
3. 作用
- 自动下载所有需要的 jar 包,不用手动导入
- 统一管理依赖版本,避免冲突
- 负责项目的编译、运行、打包、部署
4. 关联工具
- Maven(核心)
- Spring Boot Starter 系列
- 你项目中所有引入的框架 / 工具包
5. 项目示例
<!-- 你项目里一定会有的依赖 -->
<dependencies>
<dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> </dependency>
<dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> </dependency>
<dependency> <groupId>io.minio</groupId> <artifactId>minio</artifactId> </dependency>
</dependencies>
二、bootstrap.yml (Spring Cloud 引导配置)
1. 定位
微服务专用 的系统级引导配置 ,优先级比 application.yml 高 👉 单体 SpringBoot 项目根本不需要这个文件!只有微服务才用。
2. 里面装什么?
- 微服务名称(服务注册用)
- 配置中心地址(Nacos/Spring Cloud Config)
- 注册中心地址(Nacos/Eureka)
- 环境配置(dev/test/prod)
- 加密、解密、启动前置配置
3. 作用
- 项目启动第一步加载:先拉取远程配置中心的配置
- 完成服务注册、配置拉取等系统级初始化
- 优先级最高,会覆盖 application 的同名配置
4. 关联工具
- Spring Cloud(微服务框架)
- Nacos(配置中心 / 注册中心)
- Spring Cloud Config、Sentinel 等
5. 示例
spring:
application:
name: order-service # 微服务名
cloud:
nacos:
config:
server-addr: 127.0.0.1:8848 # 配置中心地址
discovery:
server-addr: 127.0.0.1:8848 # 注册中心地址
三、application.yml (Spring Boot 核心配置)
1. 定位
项目的 **「应用运行参数配置」**,SpringBoot 项目最核心的配置文件,单体项目 99% 的配置都在这里。
2. 里面装什么?
- 服务端口 :
server.port=8080 - 数据库连接:MySQL 地址、账号、密码
- MyBatis 配置:mapper 路径、实体类别名
- 中间件配置:Redis、MinIO
- 日志配置、线程池、业务参数
- SpringMVC、接口前缀等
3. 作用
配置项目运行时所有参数,让项目连接数据库、中间件,控制服务行为。
4. 关联工具
- Spring Boot(核心)
- MySQL、MyBatis、Redis、MinIO(你代码里的工具)
- Spring MVC、日志框架
5. 项目示例
server:
port: 8080
spring:
datasource: # 数据库配置
url: jdbc:mysql://localhost:3306/order_db
username: root
password: 123456
minio: # MinIO配置(你代码里的文件存储)
endpoint: http://localhost:9000
accessKey: admin
secretKey: 123456
mybatis: # MyBatis配置(你写的XML映射文件)
mapper-locations: classpath:mapper/*.xml
type-aliases-package: com.jeoho.order.entity
四、三者核心区别(必看)
1. 加载顺序(优先级从高到低)
bootstrap.yml → application.yml → 代码配置
2. 分工边界
- pom.xml :管项目依赖和构建 (Maven)
- 问:项目需要什么 jar 包?怎么打包?
- bootstrap.yml :管微服务引导 (Spring Cloud)
- 问:服务叫什么?去哪拉配置?去哪注册?
- application.yml :管应用运行 (Spring Boot)
- 问:端口多少?连哪个数据库?MinIO 怎么配?
3. 必备性
pom.xml:所有项目必须有application.yml:SpringBoot 项目必须有bootstrap.yml:只有微服务项目需要
总结
- pom.xml = 项目的菜篮子 → 装所有依赖、构建规则(Maven 工具)
- bootstrap.yml = 微服务的开机引导 → 管注册中心、配置中心(Spring Cloud)
- application.yml = 项目的运行设置 → 管端口、数据库、MyBatis、MinIO(Spring Boot)