当前位置: 首页 > 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
http://www.xdnf.cn/news/79939.html

相关文章:

  • 网络威胁情报 | Friday Overtime Trooper
  • VB.NET 2008影音播放器开发指南
  • 量子计算在密码学中的应用与挑战:重塑信息安全的未来
  • Git,本地上传项目到github
  • 超越GPT-4?下一代大模型的技术突破与挑战
  • OpenLDAP 管理 ELK 用户
  • 运行neo4j.bat console 报错无法识别为脚本,PowerShell 教程:查看语言模式并通过注册表修改受限模式
  • DeepSeek开源引爆AI Agent革命:应用生态迎来“安卓时刻”
  • 【Python】Selenium切换网页的标签页的写法(全!!!)
  • 力扣hot100 LeetCode 热题 100 Java 哈希篇
  • Spring之我见 - Spring MVC重要组件和基本流程
  • N8N 官方 MCP 节点实战指南:AI 驱动下的多工具协同应用场景全解析
  • 多台电脑切换解决方案:KVM 切换器
  • 小技巧1,在vue3中利用自定义ref实现防抖(customRef)
  • 晨控CK-FR12与欧姆龙NX系列PLC配置EtherNet/IP通讯连接操作手册
  • C++_并发编程_thread_01_基本应用
  • LoRA微调技术全景解析:大模型高效适配的革新之道
  • 【RuleUtil】适用于全业务场景的规则匹配快速开发工具
  • ffmpeg 硬解码相关知识
  • spark-SQL实验
  • 川翔云电脑32G大显存集群机器上线!
  • 进阶篇 第 6 篇:时间序列遇见机器学习与深度学习
  • 考研单词笔记 2025.04.22
  • 安宝特科技 | AR眼镜在安保与安防领域的创新应用及前景
  • 企业战略到数字化落地 —— 第三章 数字化架构
  • 快速定位达梦缓存的执行计划并清理
  • 基于大疆行业无人机的特色解决方案-无线通信篇:基于蜂窝以及自组网MESH的无线通信C2链路
  • Web3实战:从零开发你的ERC20代币合约
  • 在 master 分支上进行了 commit 但还没有 push,怎么安全地切到新分支并保留这些更改
  • 使用 LangChain + Higress + Elasticsearch 构建 RAG 应用