zoukankan      html  css  js  c++  java
  • [Go] 轻量服务器框架全局配置的实现以及解析json

    在一个应用中经常需要有一个配置文件,可以对代码中的参数进行配置,可以使用一个json文件来对应一个struct的对象,进行全局配置

    建一个conf/zinx.json作为配置文件

    {
        "Name":"zinxServer",
        "Host":"0.0.0.0",
        "TcpPort":8888
    }

    建一个utils/GlobalObj.go  utils包,比如下面这个

    func init()函数可以在导包的同时被执行,并且在这个里面声明一个全局变量作为数据存储var GlobalObject *GlobalObj

    使用ioutil.ReadFile可以直接读取文件

    使用json.Unmarshal可以直接解析json格式并且对应一个struct ,   key要一致得对应好

    package utils
    
    import "io/ioutil"
    
    import "log"
    
    import "encoding/json"
    
    type GlobalObj struct{
        Name string
        Host string
        TcpPort int
        MaxConn int
        Version string
        MaxPackageSize int
    }
    var GlobalObject *GlobalObj
    func (g *GlobalObj)Reload(){
        confFile:="conf/zinx.json"
        data,err:=ioutil.ReadFile(confFile)
        if err!=nil{
            log.Println("reload conf err ",err)
        }
        err=json.Unmarshal(data,GlobalObject)
        if err!=nil{
            log.Println("json unmarshal err ",confFile,err)
        }
    }
    func init(){
        GlobalObject=&GlobalObj{
            Name:"zinx",
            Host:"0.0.0.0",
            TcpPort: 8999,
            MaxConn: 1000,
            Version:"v0.1",
            MaxPackageSize: 4096,
        }
        GlobalObject.Reload()
    }
  • 相关阅读:
    eclipse 中文乱码
    为linux下ibus输入法添加搜狗词库
    汇编语言数据类型与声明
    linux下访问小米手机sd卡
    ubuntu linux下真机调试android程序
    Rhythmbox mp3音乐乱码的解决办法
    初学python线程(转)
    linux下安装安装BeautifulSoup
    django模板过滤器
    django使用静态文件
  • 原文地址:https://www.cnblogs.com/taoshihan/p/12051914.html
Copyright © 2011-2022 走看看