archaius(3) 配置管理器
基于上一节介绍的配置源,我们来继续了解配置管理器。配置源只是抽象了配置的获取来源,配置管理器是基于配置源的基础上对这些配置项进行管理。配置管理器的主要功能是将配置从目标位置加载到内存中,并且管理内存配置项,实现读取配置项,动态更新内存配置项,监听器功能。
archaius的配置管理器继承了Apache Commons Configuration的配置管理器,Apache Commons Configuration的AbstractConfiguration主要提供获取配置项和监听配置事件的功能,但是他不是线程安全的,archaius的ConcurrentMapConfiguration继承了AbstractConfiguration并且实现了线程安全(内部其实使用了一个ConcurrentHashMap存储配置项)。
achaius提供了三个配置管理器:
类路径配置管理器(ClasspathPropertiesConfiguration)
用于加载jar下的配置文件,ClasspathPropertiesConfiguration不直接管理配置项,而是通过ConfigurationManager加载类路径下的META-INF/conf/config.properties。
public class ClasspathPropertiesConfiguration extends ConcurrentMapConfiguration
{static String propertiesResourceRelativePath = "META-INF/conf/config.properties";
static ClasspathPropertiesConfiguration instance = null;
public static void initialize()
{
try {
instance = new ClasspathPropertiesConfiguration();
loadResources(propertiesResourceRelativePath);
} catch (Exception e) {
throw new RuntimeException(
"failed to read configuration properties from classpath", e);
}
}
private static void loadResources(String resourceName) throws Exception
{
ConfigurationManager.loadPropertiesFromResources(resourceName);
}
}
动态配置管理器(DynamicConfiguration)
DynamicConfiguration实现动态更新配置,内部使用PolledConfigurationSource作为配置源,使用AbstractPollingScheduler来定时从配置源获取配置然后再更新到DynamicConfiguration中。

子类DynamicURLConfiguration继承DynamicConfiguration,内部使用URLConfigurationSource和FixedDelayPollingScheduler作为配置源和定时执行器。
监听配置源动态配置管理器
DynamicWatchedConfiguration实现WatchedUpdateListener,通过监听WatchedConfigurationSource,实现动态配置项管理。
复合配置管理器
类图结构

archaius(3) 配置管理器的更多相关文章
- 【2016-10-27】【坚持学习】【Day14】【VS 配置管理器 AssemblyInfo 】
有这样一个需求,不同客户,有不同的逻辑,通过配置管理器和条件编译进行 自动执行正确的代码.
- 一个简单的配置管理器(SettingManager)
在很多.net开发的项目中,我们几乎都会使用到一些自定义的参数,比如说第三方的配置参数之类的. 他们的特点是:1.系统全局 2,可以做成键值对(Dictionary). 我们可以将这些参数放到Web. ...
- Win8、Win10进入SQL server配置管理器
使用 WIN8.WIN10 访问 SQL Server 配置管理器 因为 SQL Server 配置管理器是 Microsoft 管理控制台程序的一个管理单元而不是单独的程序,所以,当运行 Windo ...
- 如何启动 SQL Server Agent(SQL Server 配置管理器)
如何启动 SQL Server Agent(SQL Server 配置管理器) SQL Server 2008 R2 其他版本 4(共 6)对本文的评价是有帮助 - 评价此主题 可以从 SQL S ...
- Microsoft SQL Server,错误:2;SQL Server配置管理器(本地)—远程过程调用失败
本机是先安装sqlserver2008,后安装vs2012 在安装sqlserver2008后,运行sqlserver2008正常,接着安装vs2012,再运行sqlserver2008,问题出现了, ...
- Scut:通用配置管理器
1. 配置节 ConfigSection private List<ConfigNode> _configNodes; public class ConfigNode { public C ...
- 将 SQL Server 实例设置为自动启动(SQL Server 配置管理器)
本主题说明如何使用 SQL Server 配置管理器在 SQL Server 2012 中将 SQL Server 实例设置为自动启动. 在安装过程中,SQL Server 通常配置为自动启动. 如果 ...
- Windows10中“SQL Server 配置管理器”哪去了?
SQL Server 配置管理器是一种工具,用于管理与 SQL Server 相关联的服务.配置 SQL Server 使用的网络协议以及从 SQL Server 客户端计算机管理网络连接配置.SQL ...
- 如果SQL Server 配置管理器没有找到就代表安装失败?
如果SQL Server 配置管理器没有找到就代表安装失败? 2017-05-09 17:58 124人阅读 评论(0) 收藏 举报 版权声明:本文为博主原创文章,未经博主允许不得转载. 首先,只要你 ...
随机推荐
- gpio模拟i2c驱动
前段时间做项目,需要gpio模拟i2c通信,最后参考了一些资料,然后编写了一个程序.现在发出来,以免以后忘记,也为一些需要的朋友提供参考.不喜勿喷哈. /* 说明:该程序是基于atmel公司的sama ...
- 第1章 RDD概念 弹性分布式数据集
第1章 RDD概念 弹性分布式数据集 1.1 RDD为什么会产生 RDD是Spark的基石,是实现Spark数据处理的核心抽象.那么RDD为什么会产生呢? Hadoop的MapReduce是一种基于 ...
- centos AAVMF_CODE.fd 文件下载
centos: yum install AAVMF -y ubuntu: apt-get install qemu-efi*
- 淘宝小广告的鼠标移上实现html, JavaScript代码
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- anaconda3 安装pip3
事先安装了anaconda3版本,此时想要安装pip3,需要: https://bootstrap.pypa.io/get-pip.py 打开链接,将文本存到本地,命名为get_pip.py. 然后通 ...
- Java小菜求职记-以前在Dubbo踩的坑,这次全被问到了,这下舒服了
前传 小林求职记(五)上来就一连串的分布式缓存提问,我有点上头.... 终于,在小林的努力下,获得了王哥公司那边的offer,但是因为薪水没有谈妥,小林又重新进入了求职的旅途,在经历了多次求职过程之后 ...
- filebeat 启动失败
最近在ELK架构中启动filebeat时,启动失败,检查启动节点不存在 查看/var/log/message中报错日志,有如下内容 filebeat: Exiting:error loading co ...
- jQuery源码分析系列(二)Sizzle选择器引擎-上
前言 我们继续从init()方法中的find()方法往下看, jQuery.find = Sizzle; ... find: function (selector) { /** ... */ ret ...
- 揭秘 Kubernetes attach/detach controller 逻辑漏洞致使 pod 启动失败
前言 本文主要通过深入学习k8s attach/detach controller源码,了解现网案例发现的attach/detach controller bug发生的原委,并给出解决方案. 看完本文 ...
- Oracle-Over()函数高级用法