当前位置: 首页 > news >正文

【Maven】配置文件

Maven配置文件

application.yaml / .yml / .properties

默认加载路径

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

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

主要用途

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

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

配置读取方式

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

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

对应的配置示例:

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

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

# 内嵌服务器配置
server:port: 8080servlet:context-path: /api# 数据源配置
spring:datasource:url: jdbc:mysql://localhost:3306/mydbusername: rootpassword: secret

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

配置文件格式比较

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

优势:

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

示例:

server:port: 8080servlet:context-path: /apispring:datasource:url: jdbc:mysql://localhost:3306/mydbusername: rootpassword: secret
2. 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格式

文件名解析规则

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: infoorg.springframework.web: warn# 全局线程池(示例)
task:pool:core-size: 4max-size: 10

常见参数

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

2.端口

server:port: 48097
3.数据库
spring:datasource:url: jdbc:mysql://localhost:3306/dev_db?useSSL=false&serverTimezone=UTCusername: dev_userpassword: dev123

相关文章:

  • audio 核心服务AudioPolicyService 和AudioFlinger启动流程
  • jsconfig.json文件的作用
  • 【SAP-CO】生产的成本流转和成本分析
  • Spark-Streaming
  • 【深度学习新浪潮】新视角生成的研究进展调研报告(2025年4月)
  • 软件测试之接口测试常见面试
  • 第48讲:空间大数据与智慧农业——时空大数据分析与农业物联网的融合实践
  • ecovadis评级范围,如何拿到ecovadis评级高分
  • 局域网内,将linux(Ubuntu)的硬盘映射成Windows上,像本地磁盘一样使用
  • 健康生活新指南
  • ESM 内功心法:化解 require 中的夺命一击!
  • Spring 中 @Component, @Repository, @Service 的区别及示例代码
  • 学习Docker遇到的问题
  • 广州市白云区粤荣职业培训学校副校长余智强获聘广州培训质量督导员
  • 高性能数据库集群:分库分表
  • LeetCode 热题 100_分割等和子集(89_416_中等_C++)(动态规划)
  • 如何通过证书认证安全登录堡垒机、防火墙和VPN?安当KSP密钥管理系统助力企业实现零信任身份验证
  • C++ linux打包运行方案(cmake)
  • postman工具
  • 全能 Sui 技术栈,构建 Web3 的未来
  • 家政阿姨如何炼成全国劳模?做饭、收纳、养老、外语样样都会
  • 五一去哪玩?“时代交响”音乐会解锁艺术假期
  • 首开股份:一季度净利润亏损约10.79亿元,签约金额63.9亿元
  • 奔驰一季度利润降四成,受美国加征关税影响放弃全年盈利展望
  • 讲座|为什么要不断地翻译叶芝的诗?它们为什么值得细读?
  • 郭向阳任广东省公安厅分管日常工作副厅长(正厅级)