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

SpringBoot使用spring.config.import多种方式导入配置文件

简介

[这里是代码001]从2.4.x版本开始支持了导入文件的方式来加载配置参数,与[这里是代码002]不同的是不用提前设置而且支持导入的文件类型相对来说要丰富很多。

我们只需要在[这里是代码003]配置文件中通过[这里是代码004]属性配置需要导入的文件列表即可。

通过[这里是代码005]属性支持导入多种途径的配置文件,下面简单介绍几种。

导入classpath下的配置文件

可以导入[这里是代码006]下任意目录的文件,使用方式如下所示:

[这里是代码007]

在[这里是代码008]下分别创建[这里是代码009]、[这里是代码010]目录,在[这里是代码011]目录下创建[这里是代码012]、在[这里是代码013]目录下创建[这里是代码014]。

通过上面配置的属性导入后我们直接就可以在项目中通过[这里是代码015]或[这里是代码016]来注入使用。

[这里是代码017]、[这里是代码018]目录编译后都会到[这里是代码019]根目录下。

[这里是代码020]

[这里是代码021]

导入系统目录下的配置文件

可以导入操作系统目录下的配置文件,我在[这里是代码022]目录下创建了名为[这里是代码023]的文件,导入方式如下所示:

[这里是代码024]

使用[这里是代码025]方式注入映射如下所示:

[这里是代码026]

导入Nacos配置中心的配置文件

[这里是代码027]在[这里是代码028]发布了[这里是代码029]版本后对[这里是代码030]做了支持,可以直接通过加载[这里是代码031]内指定的配置文件。

首先我们使用[这里是代码032]来创建一个[这里是代码033]容器,步骤如下所示:

[这里是代码034]

访问http://localhost:8848/nacos,使用默认账号nacos登录后在public命名空间下创建一个名为spring-config-import-example.yamlYAML格式的配置文件,内容如下所示:

config:
    source: nacos

SpringBoot项目中如果需要集成nacos,可以直接添加spring-cloud-starter-alibaba-nacos-config依赖,如下所示:

<dependency>
  <groupId>com.alibaba.cloud</groupId>
  <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
  <version>2021.0.1.0</version>
</dependency>

导入方式如下所示:

spring:
  cloud:
    nacos:
      server-addr: localhost:8848
  config:
    import:
    # 导入nacos配置中心的配置文件
    - optional:nacos:spring-config-import-example.yaml

在项目中同样可以使用@ConfigurationProperties@Value来注入配置参数,如下所示:

@Value("${config.source}")
private String configSource;

总结

spring.config.import使用方式是多样化的,如果你需要自定义导入的方式,可以借鉴nacos对其实现的部分代码。

最后

深知大多数初中级Java工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则近万的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!

因此收集整理了一份《Java开发全套学习资料》送给大家,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。

小编已加密:aHR0cHM6Ly9kb2NzLnFxLmNvbS9kb2MvRFVrVm9aSGxQZUVsTlkwUnc==出于安全原因,我们把网站通过base64编码了,大家可以通过base64解码把网址获取下来。

相关文章:

  • 【框架】Spring Framework :SpringBoot
  • Linux内核之waitqueue机制
  • 前端面试:webpack整理
  • 7. PyEcharts
  • springboot启动报错:Failed to start bean ‘documentationPluginsBootstrapper‘
  • 5、Kafka海量日志收集系统架构设计
  • Linux命令--压缩/解压缩--使用/实例
  • Lua脚本如何调用C/C++模块,Windows以及Linux版本演示
  • springboot+jsp球队球员比赛数据管理系统java
  • upload-labs靶场通关指南(9-11关)
  • 【Arduino+ESP32专题】案例:使用INA3221监控电压电流
  • 微信小程序——语法篇
  • 【数据结构】交换排序之冒泡排序与快速排序
  • 第二十七章 使用后台任务页面
  • 【Hive】建表时的存储格式
  • Akka系列(七):Actor持久化之Akka persistence
  • android图片蒙层
  • electron原来这么简单----打包你的react、VUE桌面应用程序
  • JavaScript 基本功--面试宝典
  • Java超时控制的实现
  • js递归,无限分级树形折叠菜单
  • python_bomb----数据类型总结
  • 技术胖1-4季视频复习— (看视频笔记)
  • 紧急通知:《观止-微软》请在经管柜购买!
  • 昨天1024程序员节,我故意写了个死循环~
  • #gStore-weekly | gStore最新版本1.0之三角形计数函数的使用
  • (10)工业界推荐系统-小红书推荐场景及内部实践【排序模型的特征】
  • (13)Hive调优——动态分区导致的小文件问题
  • (java版)排序算法----【冒泡,选择,插入,希尔,快速排序,归并排序,基数排序】超详细~~
  • (vue)el-checkbox 实现展示区分 label 和 value(展示值与选中获取值需不同)
  • (黑马C++)L06 重载与继承
  • (汇总)os模块以及shutil模块对文件的操作
  • (机器学习的矩阵)(向量、矩阵与多元线性回归)
  • (离散数学)逻辑连接词
  • (七)微服务分布式云架构spring cloud - common-service 项目构建过程
  • (亲测)设​置​m​y​e​c​l​i​p​s​e​打​开​默​认​工​作​空​间...
  • (太强大了) - Linux 性能监控、测试、优化工具
  • *p++,*(p++),*++p,(*p)++区别?
  • .java 9 找不到符号_java找不到符号
  • .net core 实现redis分片_基于 Redis 的分布式任务调度框架 earth-frost
  • .net 写了一个支持重试、熔断和超时策略的 HttpClient 实例池
  • .NET 中创建支持集合初始化器的类型
  • .NetCore 如何动态路由
  • .NET上SQLite的连接
  • .NET设计模式(7):创建型模式专题总结(Creational Pattern)
  • .net下的富文本编辑器FCKeditor的配置方法
  • .secret勒索病毒数据恢复|金蝶、用友、管家婆、OA、速达、ERP等软件数据库恢复
  • @Transient注解
  • [Android] 修改设备访问权限
  • [AutoSar]状态管理(五)Dcm与BswM、EcuM的复位实现
  • [BZOJ2281][SDOI2011]黑白棋(K-Nim博弈)
  • [C++]18:set和map的使用
  • [CakePHP] 在Controller中使用Helper
  • [Codeforces] probabilities (R1600) Part.1
  • [CUDA手搓]从零开始用C++ CUDA搭建一个卷积神经网络(LeNet),了解神经网络各个层背后算法原理