【Maven】配置文件 application.yaml

发布于:2025-05-01 ⋅ 阅读:(16) ⋅ 点赞:(0)

Maven配置文件

一、application.yaml / .yml / .properties

1.默认加载路径

Spring Boot 默认会在 classpath 路径(通常是 src/main/resources/)下查找以下配置文件:

  • application.yml
  • application.yaml
  • application.properties

2.主要用途

这些配置文件用于定义应用的运行参数,包括但不限于:

  • 服务器端口配置
  • 数据库连接参数
  • 日志级别设置
  • 缓存配置
  • 跨域设置
  • 国际化配置

3.配置读取方式

Spring Boot 提供了多种方式来访问这些配置:

①. 注解注入
@Value("${配置键名}")
private String configValue;
②. 对象绑定
@Configuration
@ConfigurationProperties(prefix = "myapp.mail")
public class MailProperties {
    private String host;
    private int port;
    private String username;
    // getters/setters...
}

对应的配置示例:

myapp:
  mail:
    host: smtp.example.com
    port: 587
    username: admin@example.com
③. 自动配置

Spring Boot 的自动配置机制会自动读取并使用这些配置

# 内嵌服务器配置
server:
  port: 8080
  servlet:
    context-path: /api

# 数据源配置
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/mydb
    username: root
    password: secret

这些配置会被Spring Boot的自动配置模块自动处理,无需手动注入。

4.配置文件格式比较

文件名 本质 是否推荐 备注
application.yaml YAML 格式(新版) ✅ 推荐 最常用、结构清晰、支持多文档特性
application.yml YAML 格式 ✅ 推荐 功能与.yaml完全相同,取决于团队习惯(部分编辑器对.yaml支持更好)
application.properties Properties 格式 ⚠️ 可选 传统的键值对格式,老项目常用,缺乏层次结构
①. YAML 格式 (.yaml/.yml)

优势:

  • 层次化结构(使用缩进表示层级)
  • 支持复杂数据类型(列表、Map等)
  • 支持多文档特性(用---分隔)
  • 更易于阅读和维护

示例:

server:
  port: 8080
  servlet:
    context-path: /api

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/mydb
    username: root
    password: secret
②. Properties 格式

特点

  • 平面键值对结构
  • 需要手动管理层级(通过.表示)
  • 适合简单配置场景

示例

server.port=8080
server.servlet.context-path=/api
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=secret
③选择建议
  • 新项目:优先使用 .yaml 格式(推荐使用.yaml扩展名而非.yml)
  • 老项目维护:保持原有格式(通常为.properties)
  • 团队协作:统一团队内的配置文件格式
  • 特殊需求:需要多文档配置时,必须使用YAML格式

5.文件名解析规则

Spring Boot 会自动解析配置文件的名称格式:

application-{profile}.yml
  • {profile} 部分就是环境标识(例如 dev、test、prod)。
  • 当激活某个 Profile(如 dev)时,Spring Boot 会加载:
    • 通用配置:application.yml(所有环境共享)
    • 环境专属配置:application-dev.yml(仅 dev 环境生效),并覆盖通用配置中的相同属性。

多环境application.yml最小可运行配置,其他参数覆盖:

# ===================== 基础必选配置 =====================
spring:
  application:
    name: my-app  # 应用标识(微服务/监控必需)
  profiles:
    active: local # 默认环境(安全考虑:建议设为local/dev而非prod)

# ===================== 可选增强配置 =====================
# 调试模式(开发时建议true)
debug: false

# 日志默认级别(生产环境可覆盖)
logging:
  level:
    root: info
    org.springframework.web: warn

# 全局线程池(示例)
task:
  pool:
    core-size: 4
    max-size: 10

6.常见参数

①.应用标识及环境
spring:
  application:
    name: my-app  # 应用标识(微服务/监控必需)
  profiles:
    active: local  # 默认环境(安全考虑:建议设为local/dev而非prod)
②.端口
server:
  port: 48097
③.数据库
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/dev_db?useSSL=false&serverTimezone=UTC
    username: dev_user
    password: dev123

网站公告

今日签到

点亮在社区的每一天
去签到