这是我参与「第五届青训营 」伴学笔记创作活动的第 1 天
1.TOML的产生背景与应用目标
为项目编写合适的配置文件(config),是影响项目部署的一个重要环节,如何简洁有效地编写成为了大家关注的重点之一。TOML的目标便是成为一种简洁高效的配置文件编辑器。TOML的一个重要特性就是他可以无歧义的被映射为哈希表,进而在Go、Java等多种语言中被解析应用以获得配置信息。
2.TOML的安装与
安装toml-go客户端:
go get github.com/BurntSushi/toml
验证toml语法:
go get github.com/BurntSushi/toml/cmd/tomlv tomlv some-toml-file.toml
3.TOML应用示例
在此次项目中我选择了使用toml来存储相应的config信息,使用toml可以有效的避免空格换行等字符的影响,而且TOML还支持相应的多蹭嵌套
#关系型数据库配置
[mysql]
host = "127.0.0.1"
port = 3306
database = "ByteDance_5th"
username = "root"
password = "123456"
charset = "utf8mb4"
parse_time = true
loc = "Local"
#redis,用于存储每个用户是否对某个视频点赞,以及关注了某个人(主要用于反馈前端情况,比如点了赞后会变成红心
[redis]
host = "127.0.0.1"
port = 6379
database = 0
#记录当前服务器的ip和启动端口号,当前服务器的ip用于生成对应的视频链接地址
[server]
ip = "115.156.212.181"
port = 8080
相应的,在Gloang中使用相应的函数对toml进行读取,并使用相应的结构体来接受配置信息
_, err := toml.DecodeFile("D:\go_project\ByteDance_5th\config\config.toml", &Conf)
if err != nil {
panic(err)
}
4.TOML的语法
4.1 注释
TOML中使用#来进行注释,#开头的所在一行会被视为注释
4.2 字符串
TOML的字符串与JSON类似,但使用UTF-8编码
4.3 整数与浮点数
114514
-0.2
-9
9999
4.4 布尔值
true
false
4.5 时间
yyyy-mm-ddThh:mm:ssZ
4.6 数组
数组使用方括号包裹即可,逗号分隔,但是数组中的空格与换行会被忽略