zoukankan      html  css  js  c++  java
  • 基于kbmMW Configuration Framework 实现配置文件对象化

    实做一个应用,一般情况下,我们总要为之做一个配置文件,用来设置象数据库联接参数等信息,然后用TIniFile或者注册表对象来读写。为此,kbmMW为我们带来更好用的方式,让代码维护起来更优雅。

    如果你对kbmMW Configuration Framework一无所知,可以先看看译的博文,大体先了解一下工作原理与基本使用方法:Configuration REST easy with kbmMW #7以及窑洞洞主xalion写的使用kbmMWConfiguration 让 kbmmw smartservice 更聪明

    如果功课做完,接下来,就可以看看我在项目中实现自己的配置对象:

    第一步,定义自己的配置对象类:

      TConfigurableObject = class(TkbmMWConfigurableObject)
      private
        [kbmMW_Config('Host',mwcdReadWrite)]
        FHost: string;
    
        [kbmMW_Config('Host',mwcdReadWrite)]
        FPort: string;
      public
    
        property Host:string read FHost write FHost;
        property Port:string read FPort write FPort;
      end;

    为了易读,上面代码做了简化,Host,指服务器的地址,Port指服务器的端口。

    第二步,定义配置对象的存储:

    在同一单元的initialization段,用如下代码实现。这里,我用的xml格式在执行文件同目录下保存xml文件,命名为config.xml。注意:这一步是可选择的,如果不处理,config对象会自动在执行文件当前目录生成xxxx_config.xml文件。

    initialization
    
    Config.Storage:=TkbmMWXMLConfigurationStorage.Create(GetApplicationPath('config.xml'));//注意:这一步是可选择的,如果不处理,config对象会自动在执行文件当前目录生成xxxx_config.xml文件。

    第三步,在同一单元的initialization段,注册TConfigurableObject,让config对象能够通过xml文件读写这个他。

    initialization
    
    Config.Storage:=TkbmMWXMLConfigurationStorage.Create(GetApplicationPath('config.xml'));
    
    kbmMWRegisterKnownClass(TConfigurableObject);

    第四步,使用自定义的配置对象TConfigurableObject

    在MainDatamodule单元中,声明一个类型为TConfigurableObject的对象,然后通过该对象的属性,就可以读取与设置配置文件了。

    最后,还要注意其他的问题:

    默认情况下,kbmMW Configuration Framework自动备份五次配置文件,如果不需要,按下面代码:

    initialization
    
    Config.Storage:=TkbmMWXMLConfigurationStorage.Create(GetApplicationPath('config.xml'));
    Config.Storage.BackupMaxCount:=-1;//不生成备份文件.

    全局的Config对象与配置对象的关系,这个我们也要知道,默认情况下,配置对象的Configuration属性,即指向Config,象上面的代码,就是这样的关系。知道了这个关系,我们就可以实现的配置对象的读写,有些时候,当我们修改了配置文件的属性,想立即写入配置文件,用下面的代码:

      ConfigObject.Configuration.Storage.Save;

    这看起来很啰嗦,作者为我们封装了一个方法:

    ConfigObject.WriteConfig;//写配置文件内容。

    同样,还有一个读方法:

    ConfigObject.ReadConfig;//读配置文件
  • 相关阅读:
    word转HTML并使用于浏览器界面
    配置wampserver出现服务器错误问题
    SVN使用及配置pycharm、本地Linux虚拟机教程
    加载本地json文件,调试出现 Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https.解决方法
    转载:有关Html中<a>、<link>和<script>标签中相对路径与绝对路径的问题总结
    asp.net 登出设置
    Maven依赖中的scope详解
    什么情况下用resultType和 resultMap
    修改tomcat默认端口号8080
    SpringMVC
  • 原文地址:https://www.cnblogs.com/kinglandsoft/p/kbmMW_Configuration_Framework.html
Copyright © 2011-2022 走看看