在 Spring Boot 项目中,application.yml 是常用的外部化配置文件。相比 application.properties,YML 格式通过缩进表达层级,结构更清晰,也更适合存放数据库、日志、服务地址等复杂配置。 掌握 YML 语法、数据类型、多环境配置以及与 Java Bean 的绑定方式,是 Spring Boot 开发的基础能力。
YML 文件遵循 YAML 语法,核心规则包括:
键值对使用 key: value 表示,冒号后面必须有一个空格。
大小写敏感,server.port 和 Server.Port 会被视为不同属性。
使用缩进表示层级关系,缩进只能使用空格,不能使用 Tab 键。
相同层级的元素必须左对齐,缩进空格数不强制,但需保持一致。
注释以 # 开头,支持单行注释。
字符串默认不加引号;加单引号时,\n 等特殊字符会被当作普通文本;加双引号时,\n 会被解析为换行。
示例:
server:
port: 8080
servlet:
context-path: /app
spring:
application:
name: demo-appYML 支持多种数据类型,比 properties 更丰富。
字面量:包括字符串、整数、浮点数、布尔值、null 和日期。例如 port: 8080、enabled: true、value: ~。
对象/Map:通过缩进表示嵌套属性,也可使用行内写法 {name: zhangsan, age: 20}。
数组/List/Set:使用短横线 - 表示列表项,也可使用行内写法 [admin, user]。
嵌套结构:支持对象中包含列表、列表中包含对象等复杂组合。
示例:
app:
name: demo
enabled: true
ports:
- 8080
- 8081
admins:
- name: admin
role: superSpring Boot 通过 Profile 实现多环境配置,常见方式有两种。
第一种是多文件方式。在 src/main/resources 下创建 application-dev.yml、application-test.yml、application-prod.yml 等文件,并在主配置文件中指定激活环境:
spring:
profiles:
active: dev第二种是单文件多文档块方式。使用 --- 分隔不同环境配置。Spring Boot 2.4 及以上版本推荐使用 spring.config.activate.on-profile,旧版本使用 spring.profiles。
spring:
config:
activate:
on-profile: dev
server:
port: 8080
---
spring:
config:
activate:
on-profile: prod
server:
port: 80激活方式包括:在配置文件中设置、命令行参数 --spring.profiles.active=prod、环境变量 SPRING_PROFILES_ACTIVE 等。 多个 Profile 可同时激活,后加载的配置会覆盖同名属性。
Spring Boot 提供了多种读取配置的方式,其中与 Java Bean 绑定主要使用 @ConfigurationProperties。
app:
datasource:
url: jdbc:mysql://localhost:3306/db
username: root
timeout-ms: 5000@Component
@ConfigurationProperties(prefix = "app.datasource")
public class DataSourceConfig {
private String url;
private String username;
private int timeoutMs;
// getter 和 setter
}使用要点包括:配置类需通过 @Component 注册为 Bean,或通过 @EnableConfigurationProperties 显式启用;类中必须有 getter/setter,Spring 通过 setter 完成绑定;支持嵌套对象、List、Map 等复杂结构;可配合 @Validated 进行参数校验。 相比之下,@Value 适合注入单个属性,@ConfigurationProperties 更适合结构化配置。
![]()
YML 文件以清晰的层级结构和丰富的数据类型,成为 Spring Boot 配置管理的重要载体。开发时应遵守缩进、冒号空格、大小写敏感等语法规则;通过 Profile 实现开发、测试、生产环境隔离;对复杂配置优先使用 @ConfigurationProperties 进行类型安全绑定。合理组合这些能力,可以显著提升配置的可读性、可维护性和运行安全性。
声明:所有来源为“聚合数据”的内容信息,未经本网许可,不得转载!如对内容有异议或投诉,请与我们联系。邮箱:marketing@think-land.com
包含研学创作(大纲)和研学创作(全文)
通过请求综述题目、指定文献ID集合、生成模式及学科名称,以流式方式返回生成的调研综述全文及引用的参考文献信息。
通过请求问题内容、学科名称及选题目的,返回包含中英文题目、推荐理由、多维度评分及相似文献的智能选题推荐结果。
通过自然语言请求,选择以流式或非流式方式返回模型生成的对话回复及相关的参考文献引用信息。
包含会议文献和会议文献详情