第三篇 SpringBoot的配置文件

SpringBoot 配置文件概述

SpringBoot 的配置文件用于定义应用程序的参数、环境变量、数据库连接等配置信息。支持多种格式,如 application.propertiesapplication.yml,默认存放在 src/main/resources 目录下。

配置文件类型

properties 格式

传统的键值对格式,适合简单配置。

示例:

properties 复制代码
server.port=8080  
spring.datasource.url=jdbc:mysql://localhost:3306/db  
spring.datasource.username=root  

YAML 格式

层次化结构,适合复杂配置,可读性更强。

示例:

yaml 复制代码
server:  
  port: 8080  
spring:  
  datasource:  
    url: jdbc:mysql://localhost:3306/db  
    username: root  

多环境配置

通过文件名区分不同环境(如开发、测试、生产)。

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

激活指定环境:

properties 复制代码
spring.profiles.active=dev  

自定义配置

支持在配置文件中定义自定义参数,并通过 @Value@ConfigurationProperties 注入。

示例:

yaml 复制代码
app:  
  name: "MyApp"  
  timeout: 30  

使用 @Value 注入

java 复制代码
@Value("${app.name}")  
private String appName;  

使用 @ConfigurationProperties 批量注入

java 复制代码
@ConfigurationProperties(prefix = "app")  
public class AppConfig {  
    private String name;  
    private int timeout;  
    // getters & setters  
}  

配置文件优先级

SpringBoot 加载配置文件的优先级(从高到低):

  1. 项目根目录下的 /config 子目录
  2. 项目根目录
  3. 类路径下的 /config 目录
  4. 类路径根目录

高优先级配置会覆盖低优先级配置。

外部化配置

支持通过命令行参数、系统环境变量或外部文件覆盖默认配置。

示例(命令行激活环境并指定端口):

bash 复制代码
java -jar app.jar --spring.profiles.active=prod --server.port=9090  

动态配置刷新

结合 Spring Cloud Config 或 Nacos 等配置中心,可实现配置动态更新。需添加 @RefreshScope 注解:

java 复制代码
@RefreshScope  
@RestController  
public class DemoController {  
    @Value("${app.message}")  
    private String message;  
}  
相关推荐
雨中飘荡的记忆6 小时前
OpenClaw:开源AI助手平台的革命之路
后端
程序员鱼皮6 小时前
GitHub 关注突破 2w,我总结了 10 个涨星涨粉技巧!
前端·后端·github
用户298698530146 小时前
程序员效率工具:Spire.Doc如何助你一键搞定Word表格排版
后端·c#·.net
爱分享的鱼鱼6 小时前
Spring Boot服务中添加字段的完整指南
后端
掘金者阿豪6 小时前
数据库选型的“第三维度”:为什么我们开始重新思考技术栈的底层逻辑
后端
SelectDB6 小时前
Doris & SelectDB for AI 实操:从零搭建非结构化数据智能分析洞察系统
后端
用户849359610536 小时前
OGORM 新手入门笔记
后端
BigTopOne6 小时前
【open gl】基本api方法
后端
lizhongxuan7 小时前
AI Agent 的一体化沙盒环境
后端
祈安_7 小时前
C语言内存函数
c语言·后端