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) 收藏 举报 版权声明:本文为博主原创文章,未经博主允许不得转载. 首先,只要你 ...
随机推荐
- Datawhale学数据分析第一章
需要用到的基础知识pandas基础知识参考1,2章https://github.com/datawhalechina/joyful-pandas 1.导入数据tsv 制表符作为分隔符的字段符csv 逗 ...
- Socket原理及实践(Java/C/C++)
原理 基本概念 什么是TCP/IP.UDP? 详细的可以看一下这个:学习计算机网络知识只要一篇就够了! TCP/IP(Transmission Control Protocol/Internet Pr ...
- Project ACRN documentation
Project ACRN documentation https://projectacrn.github.io/latest/index.html Virtio devices high-level ...
- 结对项目:四则运算题目生成器(Java)
目录 一.需求分析 二.开发计划 三.实现方案 3.1 项目结构 3.2 代码说明 3.2.1 出题功能代码 3.2.3 批卷功能代码 3.2.3 四则运算功能代码 四.效能分析 4.1 程序效能 4 ...
- count.exe 个人项目
Github项目地址:https://github.com/bravedreamer/wordCount/tree/master/wc 一.题目描述: Word Count1. 实现一个简单而完整的软 ...
- Hadoop上小文件如何存储?
Block是文件块,HDFS中是以Block为单位进行文件的管理的,一个文件可能有多个块,每个块默认是3个副本,这些块分别存储在不同机器上.块与文件之前的映射关系会定时上报Namenode.HDFS中 ...
- openssh一键升级脚本(只升级openssh,其它已有环境不变,解决root登录问题)
#!/bin/bash ################################################################# ###### update openssl ...
- 把Autofac玩的和javaSpring一样6
大家好,今天来介绍我开源的一个autofac.Annotation项目 源码:https://github.com/yuzd/Autofac.Annotation 本项目是autofa的一个扩展组件, ...
- Unity中的枚举和标志
译林军 宿学龙|2014-04-10 08:56|9007次浏览|Unity(377)0 枚举和标志 今天的主题是枚举,它是C#语言中的一个很有帮助的工具,可以增强代码的清晰度以及准确性. 枚举一系列 ...
- 【jmespath】—2. 进阶 List and Slice Projections
Projections翻译的话说实话我也不知道翻成什么比较准确,姑且就叫"投影"吧,不过带来的功能确实非常的强大.好用. 首先,我先说下我的理解: 通配符 * 通配符生成的是一个l ...