spring boot导入多个设置文件

[复制链接]
发表于 2026-1-19 00:13:43 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

×
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目次下的文件。
  1. spring:
  2.   config:
  3.     import: classpath:custom-config.yml
复制代码
file

        使用file:前缀来指定文件体系中的设置文件。这答应你引用位于项目外部的设置文件。
  1. spring:
  2.   config:
  3.     import: file:/path/to/external-config.yml
复制代码
optional

        使用optional:前缀可以指定一个设置文件,如果该文件不存在,不会抛堕落误,应用步调会继承启动。这在引用可选设置时非常有用。
  1. spring:
  2.   config:
  3.     import: optional:classpath:optional-config.yml
复制代码
nacos

        如果你使用Nacos作为设置中央,可以使用nacos:前缀来导入Nacos中的设置文件。
  1. spring:
  2.   cloud:
  3.     nacos:
  4.       config:
  5.         import: nacos:data-id:group-id
复制代码
通配符导入

        你可以使用通配符(如*)来导入一个目次下的全部设置文件。这在有多个设置文件必要被一起加载时非常有用。
  1. spring:
  2.   config:
  3.     import: classpath:config-templates/*.yml
复制代码
无扩展名文件

        如果你必要导入没有扩展名的文件,可以在文件名后添加方括号,比方classpath:additional-application[.yml]。
  1. spring:
  2.   config:
  3.     import: classpath:additional-application[.yml]
复制代码
目次导入

        你可以导入整个目次下的设置文件,Spring Boot会自动加载目次下的全部.properties和.yml文件。
  1. spring:
  2.   config:
  3.     import: classpath:config-import-dir/
复制代码
特定环境设置文件

        固然不是spring.config.import的直接选项,但你可以创建特定于环境的设置文件(如application-dev.yml),并通过激活相应的profile来加载它们。
  1. java -jar myapp.jar --spring.profiles.active=dev
复制代码
下令行参数

        固然不是在application.yml或application.properties中设置,但你可以在启动应用步调时通过下令行参数来导入设置文件。
  1. java -jar myapp.jar --spring.config.import=classpath:another-config.yml
复制代码
        这些选项提供了机动的方式来构造和管理你的设置文件,使得你可以根据差别的环境和需求来调解应用步调的设置。
3、示例代码

application.yml
  1. server:
  2.   port: 8080
  3. spring:
  4.   application:
  5.     name: spring-config-multiple-demo
  6.   config:
  7.     import:
  8.       - classpath:application-test.yml
  9.       - classpath:application-learn.yml
  10.       - classpath:application-user-list.yml
复制代码
application-learn.yml
  1. learn:
  2.   cond:
  3.     enabled: false
复制代码
application-test.yml
  1. test:
  2.   app:
  3.     id: 123
  4.     name: "张三"
复制代码
application-user-list.yml
  1. com:
  2.   user:
  3.     user-list:
  4.       - name: "张三"
  5.         id: 1
  6.       - name: "李四"
  7.         id: 2
  8.     person-list:
  9.       - name: "王五"
  10.         id: 3
  11.       - name: "赵六"
  12.         id: 4
复制代码
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表