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

Spring Boot 中加载多个 YAML 配置文件

在 Spring Boot 中加载多个 YAML 配置文件是一个常见的需求,通常用于将配置信息分离到多个文件中以便于管理和维护。Spring Boot 提供了灵活的方式来加载多个 YAML 配置文件。

以下是一些方法和步骤,用于在 Spring Boot 应用中加载多个 YAML 配置文件:

方法一:使用 spring.config.import 属性

Spring Boot 2.4 及以上版本引入了 spring.config.import 属性,使得加载多个配置文件变得更加方便。你可以在 application.ymlapplication.properties 文件中使用 spring.config.import 来引入其他 YAML 文件。

例如,假设你有以下两个 YAML 文件:

  • application.yml
  • config-part1.yml
  • config-part2.yml

你可以在 application.yml 中这样配置:

spring:
  config:
    import:
      - classpath:config-part1.yml
      - classpath:config-part2.yml

方法二:使用 spring.profiles.activespring.profiles.include

通过配置不同的 profiles,你可以在不同的环境下加载不同的配置文件。假设你有以下文件:

  • application.yml
  • application-dev.yml
  • application-prod.yml

你可以在 application.yml 中定义一些通用配置,然后在 application-dev.ymlapplication-prod.yml 中定义特定环境的配置。

例如,application.yml

server:
  port: 8080

application-dev.yml

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/devdb
    username: devuser
    password: devpassword

application-prod.yml

spring:
  datasource:
    url: jdbc:mysql://prod-db-server:3306/proddb
    username: produser
    password: prodpassword

然后,你可以通过命令行参数或环境变量来指定活动的 profile,例如:

java -jar yourapp.jar --spring.profiles.active=dev

或者,使用 spring.profiles.include 在一个 profile 文件中包含其他 profile 文件:

# application-full.yml
spring:
  profiles:
    include: dev,custom

方法三:在 application.properties 中指定配置文件位置

你还可以在 application.properties 文件中通过 spring.config.location 属性指定 YAML 文件的位置。

例如:

spring.config.location=classpath:/default.yml,classpath:/override.yml

方法四:使用 @ConfigurationProperties@PropertySource

虽然这不是直接加载多个 YAML 文件的方法,但你可以将 YAML 文件转换为 properties 文件,并使用 @PropertySource 注解来加载它们。然后,你可以使用 @ConfigurationProperties 将这些属性绑定到一个配置类。

例如,创建一个 custom.properties 文件:

custom.property1=value1
custom.property2=value2

然后,在你的配置类中使用 @PropertySource@ConfigurationProperties

import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.PropertySource;

@Configuration
@PropertySource("classpath:custom.properties")
@ConfigurationProperties(prefix = "custom")
public class CustomProperties {
    private String property1;
    private String property2;

    // getters and setters
}

总结

Spring Boot 提供了多种方法来加载多个 YAML 配置文件,选择哪种方法取决于你的具体需求和应用场景。无论是使用 spring.config.import、profiles、spring.config.location 还是 @PropertySource,都可以帮助你有效地管理和加载配置信息。


http://www.kler.cn/a/542758.html

相关文章:

  • ubuntu如何设置停止程序自动更新
  • MapReduce到底是个啥?
  • 01.Docker 概述
  • 非华为电脑制作一碰传NFC贴纸
  • 食品饮料生产瓶颈?富唯智能协作机器人来 “破壁”
  • 【0401】Postgres内核 CREATE DATABASE database-name 源码实现 ①
  • Ansible中常用的playbook命令
  • Anaconda 安装指南:Windows、macOS 和 Linux 的详细安装步骤
  • 解码DeepSeek家族系列:大语言模型赛道上的黑马传奇
  • 云消息队列 ApsaraMQ Serverless 演进:高弹性低成本、更稳定更安全、智能化免运维
  • python基础入门:附录:常用第三方库推荐(NumPy、Django等)
  • 【3.Git与Github的历史和区别】
  • LSTM 学习笔记 之pytorch调包每个参数的解释
  • 深度学习-医学影像诊断
  • Go 1.4操作符指针理解
  • 《从入门到精通:蓝桥杯编程大赛知识点全攻略》(十二)-航班时间、日志统计、献给阿尔吉侬的花束
  • NLP面试-Transformer
  • 【后端发展路径】基础技术栈、工程能力进阶、高阶方向、职业发展路径
  • vue3自定义loading加载动画指令
  • Java集合List详解(带脑图)
  • 基于微信小程序的刷题系统的设计与实现springboot+论文源码调试讲解
  • 开发中用到的设计模式
  • Excel 笔记
  • 【哇! C++】第一个C++语言程序
  • docker compose部署dragonfly
  • 《pytorch》——优化器的解析和使用