第三篇 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;  
}  
相关推荐
ZouZou老师2 小时前
C++设计模式之适配器模式:以家具生产为例
java·设计模式·适配器模式
用户2190326527352 小时前
Java后端必须的Docker 部署 Redis 集群完整指南
linux·后端
曼巴UE52 小时前
UE5 C++ 动态多播
java·开发语言
VX:Fegn08952 小时前
计算机毕业设计|基于springboot + vue音乐管理系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端·课程设计
程序员鱼皮2 小时前
刚刚,IDEA 免费版发布!终于不用破解了
java·程序员·jetbrains
bcbnb3 小时前
苹果手机iOS应用管理全指南与隐藏功能详解
后端
用户47949283569153 小时前
面试官:DNS 解析过程你能说清吗?DNS 解析全流程深度剖析
前端·后端·面试
幌才_loong3 小时前
.NET8 实时通信秘籍:WebSocket 全双工通信 + 分布式推送,代码实操全解析
后端·.net