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

Spring Boot支持哪些类型的自定义配置文件?

Spring Boot 支持多种类型的自定义配置文件,以满足不同场景下的配置需求。主要支持的配置文件类型和格式如下:

1. 配置文件格式

Spring Boot 支持两种主流的配置文件格式:

(1)Properties 格式(.properties

这是最常见的配置格式,采用键值对形式:

# 服务器配置
server.port=8080
server.context-path=/api# 自定义应用配置
app.name=MyApplication
app.version=2.1.0
app.feature.notifications=true
(2)YAML 格式(.yml.yaml

YAML 格式更适合复杂结构和嵌套配置,语法更简洁:

# 服务器配置
server:port: 8080context-path: /api# 自定义应用配置
app:name: MyApplicationversion: 2.1.0feature:notifications: true

注意:YAML 格式对缩进敏感(使用空格,不支持 Tab),且键值对冒号后需加空格。

2. 按用途分类的自定义配置文件

(1)主配置文件

默认放在 src/main/resources 目录下,Spring Boot 会自动加载:

  • application.properties
  • application.yml(或 application.yaml

这是最基础的配置文件,通常存放全局配置(如服务器端口、默认日志级别等)。

(2)环境特定配置文件

按环境区分的配置文件,命名规则为 application-{profile}.propertiesapplication-{profile}.yml,例如:

  • application-dev.properties(开发环境)
  • application-test.yml(测试环境)
  • application-prod.properties(生产环境)

激活方式

  • 在主配置文件中指定:spring.profiles.active=dev
  • 启动时通过命令行参数:java -jar app.jar --spring.profiles.active=prod
(3)自定义命名的配置文件

可以创建任意名称的配置文件(如 db-config.propertiesthird-party.yml),通过以下方式加载:

① 通过 @PropertySource 注解

在配置类上指定文件路径(仅支持 properties 格式):

@Configuration
@PropertySource("classpath:config/db-config.properties") // 加载类路径下的配置
public class DbConfig {// 绑定配置属性
}
② 通过主配置文件导入

application.propertiesapplication.yml 中通过 spring.config.import 导入(支持多种格式):

# 导入多个配置文件(支持properties/yml)
spring.config.import=classpath:config/db-config.properties, classpath:config/mq-config.yml
③ 外部配置文件

Spring Boot 会自动扫描外部路径的配置文件(优先级高于内部文件),常见位置:

  • 项目根目录下的 config 文件夹
  • 项目根目录
  • 操作系统用户目录的 .config 文件夹
(4)加密配置文件(Spring Cloud Config)

对于敏感配置(如数据库密码、API 密钥),可使用 Spring Cloud Config 配合加密工具(如 JCE),将配置文件加密存储,运行时自动解密。

3. 特殊场景的配置文件

(1)测试环境配置

放在 src/test/resources 目录下的配置文件(如 application-test.properties),仅在测试时生效,会覆盖主目录中同名配置。

(2)多模块项目配置

在多模块项目中,可在各模块的 src/main/resources 下放置模块专属配置文件,通过 @PropertySourcespring.config.import 按需加载。

总结

Spring Boot 对自定义配置文件的支持非常灵活,核心特点包括:

  • 支持 propertiesYAML 两种格式
  • 可按环境、功能拆分配置文件
  • 支持内部、外部、测试专用等多种场景
  • 提供注解和配置项两种加载方式

根据项目复杂度,可选择合适的配置文件类型和组织方式,建议优先使用 YAML 格式(结构清晰)和环境特定配置(便于多环境管理)。

http://www.dtcms.com/a/390397.html

相关文章:

  • uniapp:scss变量使用方法
  • postman接口测试系列: 时间戳和加密
  • 模型蒸馏demo
  • 【JVM】Java中有哪些垃圾回收算法?
  • 为何楼宇自控系统日益受欢迎?解析其兴起的核心动因
  • ASP.NET Core RazorPages/MVC/Blazor/Razor/WebApi概念记录说明
  • .NET Core 中 RabbitMQ 和 MassTransit 的使用
  • 使用QT进行3D开发建模
  • 阿里云开源DeepResearch:轻量化AI推理框架技术解析与实践指南
  • Visual Studio 2026 Insiders 重磅发布:AI 深度集成、性能飞跃、全新设计
  • 大模型初识(基础模型 业务集成+智能体Agent+Prompt提示词优化)
  • 【4/20】Node.js 入门:设置后端服务器,实现一个简单 API 端点
  • Kafka事务:构建可靠的分布式消息处理系统
  • 补环境-JS原型链检测:在Node.js中完美模拟浏览器原型环境
  • TCP端口号的作用
  • 笔记本电脑维修指南(芯片级)
  • Burpsuite进行暴力破解
  • 虚拟现实CAVE系统中的光学跟踪技术,1:1呈现CAD模型沉浸式交互
  • 2025拍照手机综合排名与场景化选购指南
  • TCP 抓包分析:tcp抓包工具、 iOS/HTTPS 流量解析全流程
  • 从电商API到数据分析的全流程教程
  • 【踩坑】ELK日志解析优化实战:解决多行合并与字段提取问题
  • 大数据高校舆情分析系统 snownlp情感分析 数据分析 可视化 Flask框架 大数据实战(源码)✅
  • 【12/20】数据库高级查询:MongoDB 聚合管道在用户数据分析中的应用,实现报告生成
  • Oceanbase tablegroup表组与负载均衡实践
  • 什么是批量剪辑矩阵源码,支持OEM!
  • RabbitMQ快速入门指南
  • 在项目中通过LangChain4j框架接入AI大模型
  • c语言9:从内存到实践深入浅出理解数组
  • sglang使用笔记