[Poco]应用程序的配置管理

     Poco::AbstractConfiguration及其子类是Poco提供的操作配置文件的接口,这组接口将配置文件抽象为名值对。Poco::Util::Application实现了自动寻找配置文件并加载配置文件的功能,使用时有三个要点:

    (1)写一个与应用程序同名的配置文件放在软件的启动目录中

    (2)重载Application::initialize(Application & self),在其中调用loadConfiguration(),如下

protected:

void initialize(Application& self)

{

loadConfiguration(); // load default configuration files, if present

Application::initialize(self);

}

    (3)在使用配置文件的位置通过Application::config()获取加载的配置文件,如下

#include "Poco/Util/Application.h"

//

Poco::Util::AbstractConfiguration & config(Poco::Util::Application::instance().config());

config.getString("key", "value");


       Poco中有关配置管理的类型如下图所示:

其中,AbstractConfiguration是基类,提供以下方法:createView, enumerate, expand, getBool, getDouble, getInt, getRaw, getRawString, getString, hasOption, hasProperty, keys, parseBool, parseInt, setBool, setDouble, setInt, setRaw, setString,具体类实现如下功能:

  • IniFileConfiguration ini文件

  • XMLConfiguration xml文件

  • FilesystemConfiguration 将每个数据保存在一个文件中,用目录树管理配置

  • PropertyFileConfiguration 处理Javaproperty文件

  • SystemConfiguration 提供操作系统的版本号及环境变量

  • MapConfiguration 这是一个具体实现,(key, value)保存在map

  • WinRegistryConfiguration操作Windows系统的注册表

以下adapter类提供灵活的使用以上具体类功能的策略

  • ConfigurationMapper 将一个配置树映射到另一个配置树下

  • LayeredConfiguration将多个配置树叠加在一起,根据优先级从中选择配置

  • ConfigurationView 从一个配置树中截取出一部分,是对配置树的一个视图

posted on 2011-01-22 20:17  zhihuichien  阅读(2597)  评论(0编辑  收藏  举报

导航