Spring Boot中的配置文件有哪些类型

devtools/2025/1/17 21:14:48/

在 Spring Boot 中,配置文件用于管理应用程序的设置和参数,通常存放在项目的 src/main/resources 目录下。Spring Boot 支持多种类型的配置文件,并通过这些文件来控制应用的行为和环境配置。

1. application.properties

application.properties 是 Spring Boot 默认的配置文件格式之一,它是基于 键值对 的配置方式,简单易用。通过这个文件,你可以配置 Spring Boot 应用程序的各种参数,如数据库连接、端口号、日志级别等。

示例:
# Server port
server.port=8080# Logging level
logging.level.org.springframework=DEBUG# Database configuration
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=root
  • server.port=8080 设置应用程序的 HTTP 服务端口为 8080
  • logging.level.org.springframework=DEBUG 设置 Spring 框架的日志级别为 DEBUG
  • spring.datasource.* 配置数据库连接的 URL、用户名和密码。

2. application.yml / application.yaml

application.yml(或 application.yaml)是另一个常见的配置文件格式,YAML 是一种更加结构化、可读性强的格式。在功能上,它与 application.properties 完全相同,可以用来配置相同的内容。

YAML 格式更适合表示层级结构,因此在配置嵌套的属性时更为方便和直观。

示例:
server:port: 8080logging:level:org.springframework: DEBUGspring:datasource:url: jdbc:mysql://localhost:3306/mydbusername: rootpassword: secret
  • server.port: 8080 设置应用程序的 HTTP 服务端口。
  • logging.level.org.springframework: DEBUG 设置日志级别。
  • spring.datasource.* 配置数据库连接的 URL、用户名和密码。

注意: application.ymlapplication.properties 配置文件可以共存,Spring Boot 会优先加载 application.properties 配置文件。如果两者有冲突,YAML 格式的配置将覆盖 properties 文件中的配置。

3. application-{profile}.properties / application-{profile}.yml

Spring Boot 支持 Profile(环境配置),可以根据不同的运行环境使用不同的配置文件。通过在配置文件名中加入不同的环境标识符(即 Profile),你可以在不同环境中使用不同的配置。

示例:
  • application-dev.properties:开发环境的配置文件
  • application-prod.properties:生产环境的配置文件

当应用启动时,Spring Boot 会根据激活的 Profile 加载对应的配置文件。

配置文件:

application.properties

# 默认配置
spring.datasource.url=jdbc:mysql://localhost:3306/defaultdb

application-dev.properties

# 开发环境配置
spring.datasource.url=jdbc:mysql://localhost:3306/devdb

application-prod.properties

# 生产环境配置
spring.datasource.url=jdbc:mysql://localhost:3306/proddb
激活 Profile

你可以在 application.propertiesapplication.yml 中指定激活的 Profile:

application.properties 中:

spring.profiles.active=dev

application.yml 中:

spring:profiles:active: dev

或者在命令行启动时指定:

java -jar myapp.jar --spring.profiles.active=prod

4. bootstrap.properties / bootstrap.yml

bootstrap.propertiesbootstrap.yml 主要用于 Spring Cloud Config 或在微服务架构中使用的配置。它们通常用于在应用程序启动时加载一些与环境无关的配置,如配置服务器的地址、配置文件的版本等。一般情况下,bootstrap 配置文件会在 application 配置文件之前加载。

示例:
spring.cloud.config.uri=http://localhost:8888
spring.application.name=myapp

在这个例子中,spring.cloud.config.uri 用来指定 Spring Cloud Config 服务的位置。

5. logback-spring.xml

虽然 Spring Boot 默认使用 application.propertiesapplication.yml 来配置日志,但你也可以使用 Logback 来更细粒度地控制日志设置。Spring Boot 允许你使用 logback-spring.xml 文件来定义日志配置。logback-spring.xml 是 Logback 的配置文件,并且在 Spring Boot 中,你可以使用 Spring 特定的属性来进行动态配置。

示例:
<configuration><property name="LOGS" value="./logs" /><appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"><encoder><pattern>%d{yyyy-MM-dd HH:mm:ss} - %msg%n</pattern></encoder></appender><root level="INFO"><appender-ref ref="STDOUT" /></root>
</configuration>
  • 上面的 logback-spring.xml 配置定义了控制台日志的输出格式,并设置了日志级别为 INFO

6. Custom Properties Files (自定义配置文件)

除了 application.propertiesapplication.yml,Spring Boot 允许你使用自定义配置文件,并通过 @PropertySource 注解来加载它们。例如,你可以创建一个自定义的配置文件 custom.properties,并在 Spring Boot 应用中加载它。

示例:

创建 custom.properties 文件:

myapp.customProperty=HelloWorld

在 Spring Boot 配置类中加载这个文件:

java">@Configuration
@PropertySource("classpath:custom.properties")
public class CustomConfig {@Value("${myapp.customProperty}")private String customProperty;@PostConstructpublic void init() {System.out.println("Custom Property: " + customProperty);}
}

7. application.properties / YAML 版本控制

Spring Boot 还允许你在配置文件中使用 版本控制配置文件管理,例如可以根据不同的版本使用不同的配置文件。一般而言,你可以通过工具如 Spring Cloud Config 实现这一需求。

总结

Spring Boot 提供了多种类型的配置文件,包括但不限于:

  1. application.properties:默认的键值对格式配置文件。
  2. application.yml / application.yaml:YAML 格式的配置文件,结构化、可读性强。
  3. application-{profile}.properties / application-{profile}.yml:根据不同的环境(Profile)加载不同的配置文件。
  4. bootstrap.properties / bootstrap.yml:用于 Spring Cloud 配置或微服务架构中,主要在应用启动时加载。
  5. logback-spring.xml:用于日志配置。
  6. 自定义配置文件:使用 @PropertySource 加载的自定义配置文件。

通过这些配置文件,Spring Boot 可以灵活地管理应用的各类参数,并根据不同的环境进行调整。


http://www.ppmy.cn/devtools/151362.html

相关文章

设计模式--命令模式【行为型模式】

设计模式的分类 我们都知道有 23 种设计模式&#xff0c;这 23 种设计模式可分为如下三类&#xff1a; 创建型模式&#xff08;5 种&#xff09;&#xff1a;单例模式、工厂方法模式、抽象工厂模式、建造者模式、原型模式。结构型模式&#xff08;7 种&#xff09;&#xff1…

数据结构--二叉树

目录 有序二叉树&#xff1a; 平衡二叉树&#xff1a; 234树&#xff1a; 红黑树 红黑树特点&#xff1a; 为什么红黑树是最优二叉树&#xff1f; 哈夫曼树和哈夫曼编码 有序二叉树&#xff1a; 平衡二叉树&#xff1a; 在有序二叉树的基础上得来的&#xff0c;且左右子…

【2024年华为OD机试】(B卷,100分)- IPv4地址转换成整数 (Java JS PythonC/C++)

一、问题描述 题目描述 存在一种虚拟IPv4地址&#xff0c;由4小节组成&#xff0c;每节的范围为0~255&#xff0c;以 # 号间隔。虚拟IPv4地址可以转换为一个32位的整数。例如&#xff1a; 128#0#255#255&#xff0c;转换为32位整数的结果为 2147549183&#xff08;0x8000FFF…

图论基础,如何快速上手图论?

目录 引言-对前面数据结构的总结和图论的引导 一.图的基础概念和基本术语 1.1,图的定义 1.2,图的种类 -有向图和无向图以及完全图 1.2.1有向图和无向图 1.2.2完全图和非完全图 1.3,图的基本术语 1.3.1度,路径,环... 1.3.2强连通图和弱连通图 1.3.3权与网 1.3.4连通分量…

《AI与鸿蒙Next:建筑设计可视化的革新力量》

在建筑设计领域&#xff0c;可视化对于呈现设计理念、与客户沟通以及指导施工等环节都至关重要。人工智能与鸿蒙Next图形渲染技术的发展&#xff0c;为建筑设计可视化带来了前所未有的变革与机遇。 人工智能在建筑设计可视化中的作用 快速生成设计方案&#xff1a;人工智能可以…

React 中hooks之useLayoutEffect 用法总结以及与useEffect的区别

React useLayoutEffect 1. useLayoutEffect 基本概念 useLayoutEffect 是 React 的一个 Hook&#xff0c;它的函数签名与 useEffect 完全相同&#xff0c;但它会在所有的 DOM 变更之后同步调用 effect。它可以用来读取 DOM 布局并同步触发重渲染。 2. useLayoutEffect vs us…

学习微信小程序的下拉列表控件-picker

1、创建一个空白工程 2、index.wxml中写上picker布局&#xff1a; <!--index.wxml--> <view class"container"><picker mode"selector" range"{{array}}" bindchange"bindPickerChange"><view class"pick…

微软与腾讯技术交锋,TRELLIS引领3D生成领域多格式支持新方向

去年 11 月&#xff0c;腾讯推出 Hunyuan3D 生成模型&#xff0c;是业界首个同时支持文字和图像生成 3D 的开源大模型。紧接着不到一个月&#xff0c;微软便发布了全新框架 TRELLIS&#xff0c;加入 3D 资产生成领域的竞争中。TRELLIS 支持多格式输出&#xff0c;包括辐射场、3…