大项目实践-TOML学习|青训营笔记

87 阅读2分钟

这是我参与「第五届青训营 」伴学笔记创作活动的第 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 数组

数组使用方括号包裹即可,逗号分隔,但是数组中的空格与换行会被忽略