• 博客园logo
  • 会员
  • 众包
  • 新闻
  • 博问
  • 闪存
  • 赞助商
  • HarmonyOS
  • Chat2DB
    • 搜索
      所有博客
    • 搜索
      当前博客
  • 写随笔 我的博客 短消息 简洁模式
    用户头像
    我的博客 我的园子 账号设置 会员中心 简洁模式 ... 退出登录
    注册 登录

舞者

罗帏舒卷,似有人开。明月直人,无心可猜
  • 博客园
  • 联系
  • 订阅
  • 管理

公告

View Post

POCO应用程序配置管理

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

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

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

protected:

voidinitialize(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 处理Java的property文件

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

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

  • WinRegistryConfiguration操作Windows系统的注册表

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

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

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

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

posted on 2012-02-16 09:41  wishing  阅读(1032)  评论(0)    收藏  举报

刷新页面返回顶部
 
博客园  ©  2004-2025
浙公网安备 33010602011771号 浙ICP备2021040463号-3