第三篇 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;  
}  
相关推荐
带刺的坐椅21 小时前
Solon AI Skills 会是 Agent 的未来吗?
java·agent·langchain4j·solon-ai
jacGJ21 小时前
记录学习--文件读写
java·前端·学习
花间相见21 小时前
【JAVA开发】—— Nginx服务器
java·开发语言·nginx
扶苏-su21 小时前
Java---Properties 类
java·开发语言
cypking1 天前
四、CRUD操作指南
java
橙子家1 天前
WebAPI 项目通过 CI/CD 自动化部署到 Linux 服务器(docker-compose)
后端
2301_780669861 天前
文件字节流输出、文件复制、关闭流的方法
java
剑锋所指,所向披靡!1 天前
C++之类模版
java·jvm·c++
钟离墨笺1 天前
Go语言--2go基础-->基本数据类型
开发语言·前端·后端·golang
Coder_Boy_1 天前
基于SpringAI的在线考试系统-0到1全流程研发:DDD、TDD与CICD协同实践
java·人工智能·spring boot·架构·ddd·tdd