[Ir] Viper carga la configuración del proyecto, ve a construir archivos de configuración de paquetes en binario

 

El uso tradicional de Viper es local. Después de cargar en una variable global bajo un paquete, se pueden seguir utilizando otros paquetes.

var Conf * viper.Viper

func init () {
    // Nombre de archivo sin extensión '.json' 
    filenameWithoutExt: = " env.debug "

    Conf.SetConfigName (filenameWithoutExt)
    Conf.SetConfigType ( " json " )
    Conf.AddConfigPath ( " ./setting " ) // Dir. Proyecto 
    si err: = Conf.ReadInConfig (); err! = nil {
        panic ( " Utilizando el archivo de configuración: " + Conf.ConfigFileUsed ())
    }
} 

 

Para empaquetar archivos en binario, la herramienta recomendada es  go-bindata / go-bindata

Use el comando `go-bindata -o bindata.go setting /` para generar un archivo go en el directorio actual, que tiene una función Assert (), que se puede usar en main.go.

Luego  lea los bytes [] devueltos por Assert () en main.go a través de Viper io. El código es el siguiente:

filename: = " setting / env.debug.json " 
bytesContent, err: = Asset (filename)
 if err! = nil {
        pánico ( " Asset () no puede encontrar el archivo de configuración " )
}
    
Conf.SetConfigType ( " json " )
Conf.ReadConfig (bytes.NewBuffer (bytesContent))

El valor de Config * viper.Viper se puede configurar en otros módulos para facilitar el uso externo.

 

A través de las operaciones anteriores, podemos ejecutar el archivo binario generado por la compilación en cualquier lugar.

 

Enlace :https://www.cnblogs.com/farwish/p/12733162.html

Supongo que te gusta

Origin www.cnblogs.com/farwish/p/12733162.html
Recomendado
Clasificación