我目前正在寻找一种动态组装config-keys(回退处理)的方法,然后在我们的microprofile-config.properties文件中查找这些。这样的文件可能如下所示:
# customer fallbacks
my.config=1234 # use this fallback when there is no customer
customer2.my.config=12345 # use this fallback when there is no subcustomer
customer2.subCustomer1.my.config=123456 # first level
因此,当存在客户和子客户时,使用on
我得到这个问题的原因是我想使用@ConfigProperty
注释,所以没有ConfigProvider.getConfig()。这意味着我必须在自定义的configSource
中组装动态配置键。
我知道ConfigSources是在服务器启动时通过ServiceLoader加载的。所以我尝试移除现有配置,并将其替换为我的自定义配置:
import javax.annotation.PostConstruct;
import javax.ejb.Singleton;
import javax.ejb.Startup;
import org.eclipse.microprofile.config.Config;
import org.eclipse.microprofile.config.spi.ConfigProviderResolver;
@Startup
@Singleton
public class StartupConfigurationRegistrar{
@PostConstruct
private void registerConfig() {
final Config customConfig = ConfigProviderResolver.instance().getBuilder().withSources(new FallbackHandlingConfiguration(myReqiredVariables)).addDefaultSources().build();
ConfigProviderResolver.instance().releaseConfig(ConfigProviderResolver.instance().getConfig());
ConfigProviderResolver.instance().registerConfig(customConfig, Thread.currentThread().getContextClassLoader());
}
}
我的ConfigSource已正确添加。但是稍后,当尝试访问另一个类中的配置时,我自定义的configSource
已经消失,只剩下三个默认的ConfigSources。我认为这可能是类加载器的问题。
如何在ConfigSource
中获取动态值?
您对ConfigBuilder
有一点误解。如果您使用它来创建配置
,那么您必须手动传递它。
但大多数时候你通常使用我们的“自动发现”模式。这与标准的java.util.ServiceLoader
机制一起工作。它在规范PDF和JavaDocs中有描述:https://github.com/eclipse/microprofile-config/blob/master/api/src/main/Java/org/eclipse/microprofile/config/spi/configsource.Java#L64
但我不希望使用具有动态值的ConfigSource,因为在高并发负载下,这可能会造成麻烦。您可能更愿意看看我们为ConfigJSR提出的AddLookupSuffix
机制,该机制现在正移植回mp-config:https://github.com/eclipse/ConfigJSR/blob/master/api/src/main/Java/javax/config/configAccessor。Java#L191
它与您最初的想法类似,但是.customer2将是config键的后缀。赫特。
cmf_set_dynamic_config($data) 功能 设置动态配置 参数 $data: array 要设置的数据,格式["cmf_default_theme"=>'simpleboot3'] 返回 boolean
Envoy架构支持多种的配置管理方法。采用哪种部署方法,取决于需求实现者。可以采用全静态的配置方式,实现简单的部署。更复杂的动态部署,需要采用更复杂的动态配置,需要基于实现者提供一个或多个外部REST的配置API。本文档概述了可用的配置选项。 全量参考配置 安装参考配置 Envoy v2 API概述 术语 SDS(Service Discovery Service) EDS(Endpoint Di
cmf_set_dynamic_config($data) 功能 设置动态配置 参数 $data: array 要设置的数据,格式['template' => ['cmf_default_theme' => 'default']] 返回 boolean
V1.1.1新增 <?php $data=array("URL_HTML_SUFFIX"=>".html"); $result=sp_set_dynamic_config($data); ?>
问题内容: 我有一个如下所示的route.js: 考虑到我要创建200多种不同的路线,最终我会遇到诸如“ article1”,“ article2”等内容 而我的app.js就像: 有没有动态的方式来创建这个? 问题答案: 终于成功了。 在我遇到的情况下,第1条,第2条等: 在获得多级网址的情况下,我创建了一个自定义函数:
配置中心(v2.7.0)在Dubbo中承担两个职责: 外部化配置。启动配置的集中式存储 (简单理解为dubbo.properties的外部化存储)。 服务治理。服务治理规则的存储与通知。 启用动态配置(以Zookeeper为例,可查看动态配置配置项详解): <dubbo:config-center address="zookeeper://127.0.0.1:2181"/> 或者 dubbo.c