go从0到1项目实战体系十九:配置文件

1. 配置文件方式:

yaml、toml、json、xml、ini

(1). Golang处理库:

. encoding/json:
    a. 标准库中的包,可以处理JSON配置文件.
    b. 缺点是不能加注释.. gcfg:
    a. 处理INI配置文件.. toml:
    a. 处理TOML配置文件.. viper:
    a. 处理JSONTOMLYAMLHCL以及Java properties配置文件.
. 无歧义地可以映射为哈希表,可以被多种语言解析.. TOML是大小写敏感的.. 结构体的成员首字母大写.. 配置文件的配置项须与结构体成员名一样
⑤. 支持bool、int、float、字符串、字符串数组等.

(1). github包:

go get github.com/BurntSushi/toml

(2). 举例:

[DB]
dns="root:123456@tcp(192.168.33.88:3306)/erp?charset=utf8mb4&parseTime=True&loc=Local"
prot=3306

[LOG]
path="./log.log"
logPathFile="./erp.log"    // 如果是字符串类型,必须要引号

:. 键名和键值:
   a. 键名和键值有空白会被忽略
   b. 有键必须有值
   c. 键值对后必须换行

②. 键值如果是string值,必须用引号.. 文件名可以是xx.ini

(3). go加载配置文件:


type Config struct {
	Database Database `toml:"db"`
}

type Database struct {
	DriverName string `toml:"driverName"`
	Host string `toml:"host"`
	Port int64 `toml:"port"`
	Database string `toml:"database"`
	User string `toml:"user"`
	Password string `toml:"password"`
	Charset string `toml:"charset"`
}

var config *Config

func init() {
	_, err := toml.DecodeFile("./config.ini", &config)
	if err != nil {
		panic("loading config fail")
	}
}

你可能感兴趣的:(golang,开发语言,后端)