springboot导入多个配置文件的方法实践

 更新时间:2024年11月11日 10:05:06   作者:xixingzhe2  
Spring Boot 2.4.x引入了新的配置导入方式,通过spring.config.import属性可以灵活地导入多种类型的配置文件,本文就来介绍一下,感兴趣的可以了解一下

1、简介

Spring Boot从2.4.x版本开始支持了导入文件的方式来加载配置参数,与spring.config.additional-location不同的是不用提前设置而且支持导入的文件类型相对来说要丰富很多。

我们只需要在application.properties/application.yml配置文件中通过spring.config.import属性配置需要导入的文件列表即可。

通过spring.config.import属性支持导入多种途径的配置文件,下面简单介绍几种。

2、导入方式

classpath

使用classpath:前缀来指定位于类路径(classpath)中的配置文件。这通常用于引用项目内部的资源,如src/main/resources目录下的文件。

spring:
  config:
    import: classpath:custom-config.yml

file

使用file:前缀来指定文件系统中的配置文件。这允许你引用位于项目外部的配置文件。

spring:
  config:
    import: file:/path/to/external-config.yml

optional

使用optional:前缀可以指定一个配置文件,如果该文件不存在,不会抛出错误,应用程序会继续启动。这在引用可选配置时非常有用。

spring:
  config:
    import: optional:classpath:optional-config.yml

nacos

如果你使用Nacos作为配置中心,可以使用nacos:前缀来导入Nacos中的配置文件。

spring:
  cloud:
    nacos:
      config:
        import: nacos:data-id:group-id

通配符导入

你可以使用通配符(如*)来导入一个目录下的所有配置文件。这在有多个配置文件需要被一起加载时非常有用。

spring:
  config:
    import: classpath:config-templates/*.yml

无扩展名文件

如果你需要导入没有扩展名的文件,可以在文件名后添加方括号,例如classpath:additional-application[.yml]

spring:
  config:
    import: classpath:additional-application[.yml]

目录导入

你可以导入整个目录下的配置文件,Spring Boot会自动加载目录下的所有.properties.yml文件。

spring:
  config:
    import: classpath:config-import-dir/

特定环境配置文件

虽然不是spring.config.import的直接选项,但你可以创建特定于环境的配置文件(如application-dev.yml),并通过激活相应的profile来加载它们。

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

命令行参数

虽然不是在application.ymlapplication.properties中设置,但你可以在启动应用程序时通过命令行参数来导入配置文件。

java -jar myapp.jar --spring.config.import=classpath:another-config.yml

这些选项提供了灵活的方式来组织和管理你的配置文件,使得你可以根据不同的环境和需求来调整应用程序的配置。

3、示例代码

application.yml

server:
  port: 8080
spring:
  application:
    name: spring-config-multiple-demo
  config:
    import:
      - classpath:application-test.yml
      - classpath:application-learn.yml
      - classpath:application-user-list.yml

application-learn.yml

learn:
  cond:
    enabled: false

application-test.yml

test:
  app:
    id: 123
    name: "张三"

application-user-list.yml

com:
  user:
    user-list:
      - name: "张三"
        id: 1
      - name: "李四"
        id: 2
    person-list:
      - name: "王五"
        id: 3
      - name: "赵六"
        id: 4

到此这篇关于springboot导入多个配置文件的方法实践的文章就介绍到这了,更多相关springboot导入多配置文件内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家! 

相关文章

  • 详解spring-data-jpa中jpql的投影查询

    详解spring-data-jpa中jpql的投影查询

    投影查询,就是仅仅检索表的部分字段。而不是粗暴的 SELECT * FROM...检索出所有列数据,这篇文章主要介绍了spring-data-jpa中jpql的投影查询,需要的朋友可以参考下
    2021-09-09
  • 详解Spring Boot中初始化资源的几种方式

    详解Spring Boot中初始化资源的几种方式

    这篇文章主要介绍了详解Spring Boot中初始化资源的几种方式,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-08-08
  • Java super和this的对比及使用

    Java super和this的对比及使用

    这篇文章主要介绍了Java super和this的对比及使用的相关资料,java中this与super会经常在使用的时候混淆,需要的朋友可以参考下
    2017-08-08
  • Java 数据结构与算法系列精讲之环形链表

    Java 数据结构与算法系列精讲之环形链表

    无论是静态链表还是动态链表,有时在解决具体问题时,需要我们对其结构进行稍微地调整。比如,可以把链表的两头连接,使其成为了一个环状链表,通常称为循环链表
    2022-02-02
  • Java多线Condition条件变量正确使用方法详解

    Java多线Condition条件变量正确使用方法详解

    这篇文章主要为大家,介绍了Java多线Condition条件变量正确使用方法详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-09-09
  • Java中数组协变和范型不变性踩坑记录

    Java中数组协变和范型不变性踩坑记录

    数组的协变性来源于数组的一个优势,这篇文章主要给大家介绍了关于Java中数组协变和范型不变性踩坑的一些内容,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-02-02
  • jmeter基础逻辑控制器之if控制器的使用

    jmeter基础逻辑控制器之if控制器的使用

    在实际工作中,当使用JMeter做性能脚本或者接口脚本时,当遇到需要对不同的条件做不同的操作时,我们可以使用JMeter中if控制器来实现,本文就详细的介绍一下如何使用
    2021-11-11
  • Java中实现分布式定时任务的方法

    Java中实现分布式定时任务的方法

    这篇文章主要介绍了Java中实现分布式定时任务,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-01-01
  • Spring Boot应用Docker化的步骤详解

    Spring Boot应用Docker化的步骤详解

    这篇文章主要给大家介绍了关于Spring Boot应用Docker化的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧。
    2018-04-04
  • 将Springboot项目升级成Springcloud项目的图文教程

    将Springboot项目升级成Springcloud项目的图文教程

    本文主要介绍了将Springboot项目升级成Springcloud项目,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-06-06

最新评论