apache-comnons系列之commons-configuration2 学习笔记
来源:互联网 发布:win7禁止软件安装 编辑:程序博客网 时间:2024/06/07 08:18
apache-comnons系列之commons-configuration2 学习笔记
概述
- 参考
- http://blog.csdn.net/werder/article/details/54562609
- http://blog.csdn.net/mesufy/article/details/70332799
加载配置流程
- 以PropertiesConfiguration–>FileBasedConfiguration–>Configuration/FileBased
- 以PropertiesConfiguration–>BaseConfiguration–>AbstractConfiguration–>Configuration/BaseEventSource
- Configuration–>ImmutableConfiguration/SynchronizerSupport
策略、工厂、组合
利用FileHandler的load方法委托FileBased加载FileLocator指向的文件流,回调PropertiesConfiguration的read委托给PropertiesConfigurationLayout的load利用DefaultIOFactory创建PropertiesReader,调用PropertiesReader的nextProperty获取(readProperty)并解析(parseProperty)属性,将解析出来的属性利用PropertiesConfiguration的propertyLoaded方法调用addPropertyInternal--addPropertyDirect添加属性到BaseConfiguration的store map对象中
创建配置对象流程(生成器模式)
- ReloadingFileBasedConfigurationBuilder–>FileBasedConfigurationBuilder–>BasicConfigurationBuilder
- ConfigurationBuilder–>EventSource
利用生成器模式创建相关对象
通过ReloadingFileBasedConfigurationBuilder的configure配制BuilderParameters参数,例如Parameters设置fileBased文件路径(利用代理模式)通过getConfiguration获取配置对象,并进行配置对象的初始化(委托给FileBasedConfigurationBuilder的initFileHandler,利用其加载文件,剩下过程如配置对象加载)
测试
- org.apache.commons.configuration2.TestPropertiesConfiguration
- 找到FileLocator指向的文件利用FileLocatorUtils.locate查找(使用FileLocationStrategy策略模式)
- 创建PropertiesReader,利用DefaultIOFactory工厂模式创建PropertiesReader
- interpolatedConfiguration
- 获取支持变量替换的配置对象,委托ConfigurationInterpolator的interpolate利用Lookup的lookup查找变量进行替换
- org.apache.commons.configuration2.builder.TestReloadingFileBasedConfigurationBuilder
- getConfiguration(BasicConfigurationBuilder)
- createResult(BasicConfigurationBuilder)
- createResultInstance(BasicConfigurationBuilder)
- initResultInstance(FileBasedConfigurationBuilder)
- initFileHandler(FileBasedConfigurationBuilder)
- handler.locate();
- handler.load();
- createResult(BasicConfigurationBuilder)
- getConfiguration(BasicConfigurationBuilder)
阅读全文
0 0
- apache-comnons系列之commons-configuration2 学习笔记
- apache-comnons系列之commons-lang3 学习笔记1
- apache-comnons系列之commons-codec1.11 学习笔记
- apache-comnons系列之commons-dbutils1.7 学习笔记
- apache-comnons系列之commons-fileupload1.3.3 学习笔记
- apache-comnons系列之commons-compress1.14 学习笔记
- apache-comnons系列之commons-math3.6 学习笔记
- apache-comnons系列之commons-pool2.4 学习笔记
- apache-comnons系列之commons-email1.4 学习笔记
- apache-comnons系列之commons-net3.6 学习笔记
- apache-comnons系列之commons-imaging1.0 学习笔记
- apache-comnons系列之commons-cli1.4 学习笔记
- apache-comnons系列之commons-logging1.2 学习笔记
- apache-comnons系列之commons-vfs2 学习笔记
- apache-comnons系列之commons-chain1.2 学习笔记
- apache-comnons系列之commons-exec1.3 学习笔记
- apache-comnons系列之commons-digester 3.3.2 学习笔记
- apache-comnons系列之commons-io-2.5 org.apache.commons.io.IOUtils学习笔记
- R语言时间序列之ARMA、ARIMA模型
- 2017暑假集训第二轮考试小结
- 【python】web后台开发工程师-本科
- 学生信息管理系统之数据库
- HDOj 2546 饭卡 (动态规划)
- apache-comnons系列之commons-configuration2 学习笔记
- NSSortDescriptor 的使用-------快速排序
- 使用mybatis-generator添加自定义分页插件时提示无法实例化插件类
- hdu6078
- 工具篇 | 常用邮箱POP3/SMTP设置
- 按钮默认和窗体设定----学生管理系统之用户体验
- 奇妙的音乐
- 字符串练习——识别合法帧
- Python 基础