go viper包的基本使用(目的是来处理各种格式的配置文件信息)
下载
go get github.com/spf13/viper
可能报错
cannot find package "golang.org/x/text/transform"
cannot find package "golang.org/x/text/unicode/norm"
解决方法
下载对应文件 git clone https://github.com/golang/text.git
解决方法
func LoadConfigFromYaml() (*viper.Viper, error) {
v := viper.New()
v.SetConfigName("config.yaml") //指定配置文件名称
v.AddConfigPath("./system/") //指定配置文件路径
v.SetConfigType("yaml") //指定配置文件类x型yaml
if err := v.ReadInConfig(); err != nil {
return nil, err //读取配置文件内容
}
return v, nil
}
将各项信息写进config.yaml文件中,初始化项目时加载
config.LoadConfigFromYaml()方法
v, err0 := config.LoadConfigFromYaml()
dbuser := v.Get("mysql.username")
dbpasswd := v.Get("mysql.password")
dbhost := v.Get("mysql.host") //v.Get 获取viper中参数
dbname := v.Get("mysql.dbname")
db,err :=gorm.Open("mysql",dbuser.(string)+":"+dbpasswd.(string)+"@tcp("+dbhost.(string)+")/"+dbname.(string)+"?charset=utf8")
........
yaml文件
mysql:
username: root
password: '123456'
host: '127.0.0.1:3306'
db-name: 'test'
config: 'charset=utf8&parseTime=True&loc=Local'
max-idle-conns: 10
max-open-conns: 10
log-mode: false
go Viper
Viper 是一个方便Go语言应用程序处理配置信息的库。它可以处理多种格式的配置,
例如JSON、TOML、YAML、HCL和Java properties文件