Spring Boot 配置文件详解:类型、加载顺序、自定义配置与实战指南
Spring Boot 的核心优势之一是 “约定大于配置”,但实际开发中仍需通过配置文件自定义参数(如端口、数据库连接、第三方服务密钥等)。Spring Boot 支持多种配置文件格式和加载策略,从 “配置文件类型→加载顺序→外部配置引入→自定义配置→bootstrap 与 application 区别→配置优先级” 六个维度,系统讲解 Spring Boot 配置文件的使用方法与底层逻辑,帮你彻底掌握配置管理技巧。
Spring Boot 配置文件的两种核心类型
Spring Boot 支持两种主流配置文件格式:application.properties(键值对格式)和 application.yml(YAML 格式),二者功能完全一致,仅语法风格不同,可根据团队习惯选择。
1. 格式对比与语法规则
(1)application.properties(传统键值对格式)
- 语法:采用
key=value结构,层级关系通过.分隔; - 优点:语法简单,兼容性好(所有 Spring 版本支持);
- 缺点:层级嵌套时冗余(需重复写前缀)。
示例:
1 | # 服务器配置 |
(2)application.yml(YAML 缩进格式,推荐)
- 语法:采用 “缩进 + 冒号” 表示层级关系,键值对用
key: value(冒号后需加空格); - 优点:层级清晰,冗余少,支持列表、对象等复杂结构;
- 缺点:对缩进敏感(必须用空格,不能用 Tab),低版本 Spring 需额外依赖(Spring Boot 1.2+ 已内置支持)。
示例(与上述 properties 配置等价):
1 | # 服务器配置(层级通过缩进体现) |
2. 两种格式的优先级
若同一目录下同时存在 application.properties 和 application.yml:
- 优先级:
application.properties>application.yml(相同配置项,properties 会覆盖 yml); - 建议:项目中统一使用一种格式(推荐 yml,层级更清晰),避免混合使用导致配置冲突。
Spring Boot 配置文件的默认加载顺序
Spring Boot 启动时会自动扫描4 个默认位置的 application.properties/yml 文件,按 “优先级从高到低” 加载,高优先级配置会覆盖低优先级配置(若配置项重复),且所有位置的配置文件会合并生效(非重复项叠加)。