viper 是一个配置解决方案,拥有丰富的特性:
io.Reader
中读取配置;go get github.com/spf13/viper
conf/conf.toml
app_name="gin_study02"
# possible values: DEBUG, INFO, WARNING, ERROR, FATAL
# log_level = "DEBUG"
[mysql]
ip="127.0.0.1"
port="3306"
user="root"
password="root"
database="gin_study"
util/mysql.go
var DB *sqlx.DB
func init() {
ip:=viper.Get("mysql.ip")
port := viper.Get("mysql.port")
user:=viper.Get("mysql.user")
pwd:=viper.Get("mysql.password")
database:=viper.Get("mysql.database")
dns:=fmt.Sprintf("%v:%v@tcp(%v:%v)/%v?charset=utf8&parseTime=True&loc=Local",user,pwd,ip,port,database)
var err error
DB, err = sqlx.Open("mysql", dns)
if err != nil {
fmt.Println(err)
return
}
}
与ini文件比较