基于上一节介绍的配置源,我们来继续了解配置管理器。配置源只是抽象了配置的获取来源,配置管理器是基于配置源的基础上对这些配置项进行管理。配置管理器的主要功能是将配置从目标位置加载到内存中,并且管理内存配置项,实现读取配置项,动态更新内存配置项,监听器功能。

  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) 配置管理器的更多相关文章

  1. 【2016-10-27】【坚持学习】【Day14】【VS 配置管理器 AssemblyInfo 】

    有这样一个需求,不同客户,有不同的逻辑,通过配置管理器和条件编译进行 自动执行正确的代码.

  2. 一个简单的配置管理器(SettingManager)

    在很多.net开发的项目中,我们几乎都会使用到一些自定义的参数,比如说第三方的配置参数之类的. 他们的特点是:1.系统全局 2,可以做成键值对(Dictionary). 我们可以将这些参数放到Web. ...

  3. Win8、Win10进入SQL server配置管理器

    使用 WIN8.WIN10 访问 SQL Server 配置管理器 因为 SQL Server 配置管理器是 Microsoft 管理控制台程序的一个管理单元而不是单独的程序,所以,当运行 Windo ...

  4. 如何启动 SQL Server Agent(SQL Server 配置管理器)

    如何启动 SQL Server Agent(SQL Server 配置管理器) SQL Server 2008 R2 其他版本   4(共 6)对本文的评价是有帮助 - 评价此主题 可以从 SQL S ...

  5. Microsoft SQL Server,错误:2;SQL Server配置管理器(本地)—远程过程调用失败

    本机是先安装sqlserver2008,后安装vs2012 在安装sqlserver2008后,运行sqlserver2008正常,接着安装vs2012,再运行sqlserver2008,问题出现了, ...

  6. Scut:通用配置管理器

    1. 配置节 ConfigSection private List<ConfigNode> _configNodes; public class ConfigNode { public C ...

  7. 将 SQL Server 实例设置为自动启动(SQL Server 配置管理器)

    本主题说明如何使用 SQL Server 配置管理器在 SQL Server 2012 中将 SQL Server 实例设置为自动启动. 在安装过程中,SQL Server 通常配置为自动启动. 如果 ...

  8. Windows10中“SQL Server 配置管理器”哪去了?

    SQL Server 配置管理器是一种工具,用于管理与 SQL Server 相关联的服务.配置 SQL Server 使用的网络协议以及从 SQL Server 客户端计算机管理网络连接配置.SQL ...

  9. 如果SQL Server 配置管理器没有找到就代表安装失败?

    如果SQL Server 配置管理器没有找到就代表安装失败? 2017-05-09 17:58 124人阅读 评论(0) 收藏 举报 版权声明:本文为博主原创文章,未经博主允许不得转载. 首先,只要你 ...

随机推荐

  1. jqgrid 获取选中用户的数据插入

    因为查询出的表和被插入的表不是在同一个数据库,所以先从前台jqgrid表格中获取到数据后,再插入表中. 实现: 获取到jqgrid选中 的每行数据之后,发ajax请求把数据以json格式传入后台,后台 ...

  2. ARM伪指令与伪操作

    一.伪指令 ARM伪指令有四个,分别是LDR.ADR.ADRL和NOP,下边对其分别介绍. 1.1 LDR LDR 伪指令用于加载 32 位的立即数或一个地址值到指定寄存器 .形式如  LDR{con ...

  3. JavaScript学习系列博客_13_JavaScript中的对象(Object)简介

    对象 对象属于一种复合的数据类型,在对象中可以保存多个不同数据类型的属性.除了那5种基本数据类型,就是对象. 分类:1.内建对象- 由ES标准中定义的对象,在任何的ES的实现中都可以使用- 比如:Ma ...

  4. anaconda下载包时网络连接错误的解决方法(CondaHTTPError:HTTP 000 connection failed for url)

    继上一篇<在WSL上搭载python编程环境>之后,下载软件和创建新环境的过程非常艰辛,下载太慢,以至于常常中断. 不论用conda安装一些python的包,还是创新独立的编程环境时,出现 ...

  5. 构造 IPv6 报文

    #!/usr/bin/python from scapy.all import * a=IPv6(nh=58, src='fe80::214:f2ff:fe07:af0', dst='ff02::1' ...

  6. A review of learning in biologically plausible spiking neural networks

    郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布! Contents: ABSTRACT 1. Introduction 2. Biological background 2.1. Spik ...

  7. Python中print()函数不换行的方法以及分隔符替换

    一.让print()函数不换行 在Python中,print()函数默认是换行的.但是,在很多情况下,我们需要不换行的输出(比如在算法竞赛中).那么,在Python中如何做到这一点呢? 其实很简单.只 ...

  8. Python1--简介及基础语法

    0. 简介 Python易于学习的编程语言,有很多现成的第三方库可以调用,不用重复造轮子,老话说:"人生苦短,我用 Python" 1. 安装Python Mac:brew ins ...

  9. phoenix PQS的kerberos相关配置

    thin 客户端的实例代码 jdbc:phoenix:thin:url=<scheme>://<server-hostname>:<port>;authentica ...

  10. Windows servers 2008 环境下,CA证书服务器搭建。

    CA证书这个东西好像是很久之前的东西了,现在已经不大用了,不过还是作为一种服务,搭建一下. 环境:Windows servers 2008 (虚拟机环境) 1.配置IP地址. 2.添加角色. 选择Ac ...