⚡配置文件管理模块⚡

Posted 努力学习的少年

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了⚡配置文件管理模块⚡相关的知识,希望对你有一定的参考价值。

目录

配置文件管理模块的介绍

 配置文件管理模块的实现


配置文件管理模块的介绍

  • 在服务器上,存在一个配置文件Config.txt,它是按照Json字符串的格式存储的是云服务器中的配置信息
  • 服务器启动的时候,配置文件管理模块会将配置文件中的配置信息加载到服务器上.

Config.txt文件:

 配置文件管理模块的实现

  • 利用FileUtil文件工具类打开配置文件,将配置文件信息读取到body中。
  • 由于body中的数据是Json字符串,我们不能直接获取变量,我们需要将Json字符串反序列化Json::Value 对象,再将对象中的各个变量赋值給成员变量。
    class Config    
      private:    
        time_t hot_time;//热点时间    
        int server_port;//服务器的端口号    
        std::string ip;//ip地址
        std::string url_prefix;//url的前缀
        std::string pack_dir;//压缩目录                                                                                                                                                     
        std::string back_dir;//文件目录                
        std::string back_file_info;//backfile文件      
        std::string pack_file_suffix;//压缩文件后缀    
      private:                                               
        Config()                                            
          LoadConfit();                                      
                                                            
                                                             
        bool LoadConfit()                                   
          sjp::FileUtil fu("./Config.txt");                  
          std::string body;                                  
          fu.GetContent(body);                               
          Json::Value root;                                  
          JsonUtil::UnSerialize(root,body);                  
                                                             
          hot_time=root["HotTime"].asInt();                  
          server_port=root["ServerPort"].asInt();            
          ip=root["Ip"].asString();                          
          url_prefix=root["UrlPrefix"].asString();           
          pack_dir=root["PackDir"].asString();               
          back_dir=root["BackDir"].asString();               
          back_file_info=root["BackFileInfo"].asString();    
          pack_file_suffix=root["PackFileSuffix"].asString();    
W>                                                          
     private:
       static Config* instant;
       static std::mutex lock;
      public:
        static Config* GetInstant()
          if(instant==nullptr)
            lock.lock();
            if(instant==nullptr)
              instant=new Config();
            
            lock.unlock();
          
          return instant;
        
  
        time_t GetHotTime()
          return hot_time;
        
  
        std::string GetIp()
          return ip;
        
  
        std::string GetPackFileSuffix()
          return pack_file_suffix;
        
  
        std::string GetBackFileInfo()
          return back_file_info;                                                                                                                                                            
        
        int GetServerPort()
          return server_port;
        

       std::string GetUrlPrefix()
          return url_prefix;
        
  
        std::string GetPackDir()
          return pack_dir;
        
  
        std::string GetBackDir()
          return back_dir;
        
    ;
  
    Config* Config::instant=nullptr;
    std::mutex Config::lock;
                                  

以上是关于⚡配置文件管理模块⚡的主要内容,如果未能解决你的问题,请参考以下文章

43 openEuler搭建Apache服务器-配置文件说明和管理模块

创建菜单,其中模块分配给PHP中的用户配置文件

saltStack 配置管理(也就是替换文件)

flask蓝图与插件

Flask插件与蓝图

SaltStack 配置管理