首页 > 其他分享 >【Quarkus】quarkus框架获取配置的几种方式

【Quarkus】quarkus框架获取配置的几种方式

时间:2023-12-14 15:57:50浏览次数:32  
标签:sourcesToBuild 读取 builder 几种 Quarkus io config quarkus

翻源码可以发现

读取接口

org.eclipse.microprofile.config.spi.ConfigSourceProvider

实现类

// 从环境变量中读取
io.smallrye.config.DotEnvConfigSourceProvider
// classpath中读取application.properties
io.quarkus.runtime.configuration.ApplicationPropertiesConfigSourceLoader.InClassPath
// 文件系统中读取 System.getProperty("user.dir"), "config", "application.properties"
io.quarkus.runtime.configuration.ApplicationPropertiesConfigSourceLoader.InFileSystem

io.smallrye.config.SmallRyeConfig.ConfigSources#buildSources

        private static List<ConfigSource> buildSources(final SmallRyeConfigBuilder builder) {
            List<ConfigSource> sourcesToBuild = new ArrayList<>(builder.getSources());
            // 提供配置的来源: 环境变量、classpath、fileSystem
            for (ConfigSourceProvider sourceProvider : builder.getSourceProviders()) {
                // 从来源中获取配置源,如从classpath中获取所有application.properties作为ConfigSource实例供后续获取配置
                for (ConfigSource configSource : sourceProvider.getConfigSources(builder.getClassLoader())) {
                    sourcesToBuild.add(configSource);
                }
            }

            if (builder.isAddDiscoveredSources()) {
                sourcesToBuild.addAll(builder.discoverSources());
            }
            if (builder.isAddDefaultSources()) {
                sourcesToBuild.addAll(builder.getDefaultSources());
            }
            sourcesToBuild.add(new DefaultValuesConfigSource(builder.getDefaultValues()));

            return sourcesToBuild;
        }

顺带说一下这个源码的切入点,为增加一个config拦截器,通过debug找栈找到的。

配置拦截器文档

标签:sourcesToBuild,读取,builder,几种,Quarkus,io,config,quarkus
From: https://www.cnblogs.com/xiaojiluben/p/17901317.html

相关文章

  • 几种简单的排序算法(js实现)
    排序是日常开发中经常用到的代码,下面是几种常见的排序算法:冒泡排序(BubbleSort)functionbubbleSort(arr){letlen=arr.length;for(leti=0;i<len-1;i++){for(letj=0;j<len-1-i;j++){if(arr[j]>arr[j+1]){......
  • 用python将csv转excel (.xls和.xlsx)的几种方式
    excel后缀有2种格式,.xls是从Excel97到Excel2003的默认文件格式,而.xlsx是Excel2007及更高版本的默认文件格式。.xlsx和.xls格式的主要区别在于,.xls格式单个工作表最多支持65536行,256列。.xlsx格式最多支持1048576行,16384列。此外就是,存储同样多的数据,.xlsx格式文......
  • 1.5万字 + 25张图盘点RocketMQ 11种消息类型,你知道几种?
    大家好,我是三友~~故事的开头是这样的最近有个兄弟私信了我一张截图我一看截图内容,好家伙,原来是我一年多前立的flag倒不是我忘了这件事,我后来也的确写了一篇的关于RocketMQ运行的原理的文章只不过这篇文章是从上帝的视角去看待RocektMQ一条消息整个生命周期的过程所以就没有......
  • Web 应用显示 Icon 的几种技术盘点
    在Web前端应用开发中,渲染图标是一个常见的需求,可以通过多种技术来实现。图标在用户界面中扮演着重要的角色,提供直观的视觉反馈和更好的用户体验。以下是一些常见的前端图标渲染技术,以及它们的一些优缺点。**1.字体图标(IconFonts)字体图标是将图标作为字体文件(通常是.ttf或.otf......
  • mysql中count函数的几种写法解析
    一、count(主键)innodb引擎会遍历整张表,把每一行的主键值都取出来返回给服务层,服务层拿到主键后直接按行进行计数累加二、count(特定字段)2.1没有notnull约束innodb引擎会遍历整张表,把每一行的字段值都取出来返回给服务层,服务层判断是否为null,不为null计数累加2.2有no......
  • 前端大屏适配几种方案
    一、方案一:rem+font-size动态设置HTML根字体大小和body字体大小,会使用到lib-flexible.js插件(functionflexible(window,document){vardocEl=document.documentElementvardpr=window.devicePixelRatio||1//adjustbodyfontsizefunctionsetBodyFontSize(......
  • UML几种图例介绍
    九种常见UML图 UML图中类之间的关系:依赖,泛化,关联,聚合,组合,实现类与类图1)类(Class)封装了数据和行为,是面向对象的重要组成部分,它是具有相同属性、操作、关系的对象集合的总称。2)在系统中,每个类具有一定的职责,职责指的是类所担任的任务,即类要完成什么样的功能,要承......
  • Autofac的几种方式
    .net下优秀的IOC容器框架Autofac的使用方法,实例解析-知乎(zhihu.com) UseServiceProviderFactory(使用服务提供商)是在ASP.NETCore中用来替换默认的依赖注入容器工厂的方法。通过使用不同的容器工厂,可以使用第三方的依赖注入容器(如Autofac、Ninject等),以替代默认的ASP......
  • 金属制品ERP有哪几种?金属制品ERP都有什么作用
       市面上的金属制品种类繁多,这些多种多样的商品有差异化的营销策略、价格机制、生产工序、制造工艺、外观和品质等,部分金属制品还存在生产过程工艺多变、物料种类多、成本核算困难等情况。除此之外,不同类型的金属制品还有差异化的经营模式和管理方法,繁杂的业务数据统计......
  • 鸿蒙开发丨设备内UIAbility的几种交互方式
    本文分享自华为云社区《设备内UIAbility交互:无缝体验与高级技巧》,作者:柠檬味拥抱。UIAbility组件间交互(设备内)在设备内,UIAbility(用户界面能力)是系统调度的最小单元,它们负责展示用户界面和执行相关的业务逻辑。设备内的不同功能模块之间的交互是应用程序开发中的重要部分。本文......