go语言聊天室实现(四)获取配置文件数据并保存
2020-03-17 本文已影响0人
公式般欢笑
在项目启动的时候,我们需要初始化一些配置,并在项目运行过程中使用。
在本项目中,我们使用beego来进行配置文件的初始化。
我们的配置文件格式是ini,关于ini配置文件的介绍,本文截取一段百度百科的内容。
.ini 文件是Initialization File的缩写,即初始化文件 [1] ,是windows的系统配置文件所采用的存储格式,统管windows的各项配置,一般用户就用windows提供的各项图形化管理界面就可实现相同的配置了。但在某些情况,还是要直接编辑.ini才方便,一般只有很熟悉windows才能去直接编辑。开始时用于WIN3X下面,WIN95用注册表代替,以及后面的内容表示一个节,相当于注册表中的键。
配置文件内容如下:
[redis]
host=127.0.0.1
port=6379
这里只写了一个redis的配置文件,如果有其他配置文件的内容,我们就直接按照上面的格式继续加就可以了。
例如,我们想加入一个log的配置,可以直接这样写:
[log]
;配置log文件的目录
path=/var/logs/chat/
然后我们需要读取ini文件的内容。
首先,我们需要安装一下beego这个包:
go get github.com/astaxie/beego
然后我们引入这个包中的config,并使用config这个包来读取配置文件;
配置文件的内容我们放到一个全局变量中。
//Redis配置文件结构体
type RedisConf struct {
Host string //redis host
Port int //redis port
}
var RCF=RedisConf{}
func LoadConf() {
conf, err := config.NewConfig("ini", "config/configure.conf")
if err != nil {
fmt.Println("new config failed,err", err)
return
}
common.RCF.Host = conf.String("redis::host")
common.RCF.Port, err =conf.Int("redis::port")
}
我们通过LoadConf的方法来读取配置文件,并写入到全局变量中。
然后我们就可以在全局任何一个地方来使用我们预加载的配置文件内容。