Viper 是一个完整的 Go 应用配置解决方案。 Viper 可以读取以下内容: JSON TOML YAML HCL INI envfile 以及Java 属性配置文件 示例config/config.toml : address="localhost"port="9090" 读取config.go: funcReadConfig(){viper.SetConfigName("config/config.toml")...
AutomaticEnv()BindEnv(input …string) errorSetEnvPrefix(in string)SetEnvKeyReplacer(r *strings.Replacer)AllowEmptyEnv(allowEmptyEnv bool) Viper 读取环境变量是区分大小写的。Viper 提供了一种机制来确保 Env 变量是唯一的。通过使用 SetEnvPrefix,可以告诉 Viper 在读取环境变量时使用前缀。BindEnv 和 Automa...
Viper 除了支持配置文件外,还可以读取环境变量。你可以设置环境变量前缀,并自动将下划线转换为点号分隔符来映射配置项: viper.SetEnvPrefix("MYAPP")viper.AutomaticEnv()// 假如环境变量 MYAPP_SERVER_PORT 被设置为 9090,则:serverPort:=viper.GetInt("server.port")fmt.Printf("环境变量设置的服务端口:%d\n",...
viper.AddRemoteProvider("etcd","http://127.0.0.1:4001","/config/hugo.json")viper.SetConfigType("json")// because there is no file extension in a stream of bytes, supported extensions are "json", "toml", "yaml", "yml", "properties", "props", "prop", "env", "dotenv"err:=viper....
port := viper.GetInt("database.port") username := viper.GetString("database.username") password := viper.GetString("database.password") 在上面的代码中,我们首先使用AutomaticEnv方法启用了自动从环境变量获取配置。然后,通过SetConfigName、AddConfigPath和ReadInConfig方法查找并读取了配置文件。最后,使用...
在读取配置文件之前使用AutomaticEnv,并使用SetEnvKeyReplacer将".“替换为”" 注:如果是yaml字段有使用到"",可以替换成其他的,或者使用"__" 环境变量的格式为:SERVER_PORT 1...2viper.SetConfigType("yaml")3viper.AutomaticEnv()4replacer := strings.NewReplacer(".","_")5viper.SetEnvKeyReplacer(replacer...
viper是一个很完善的Go项目配置解决方案,很多著名的开源项目都在使用,比如Hugo,Docker都使用了该库,使用viper可以让我们专注于自己的项目代码,而不用自己写那些配置解析代码。 功能 支持配置key默认值设置 支持读取JSON,TOML,YAML,HCL,envfile和java properties等多种不同类型配置文件 ...
Viper 是适用于 Go 应用程序(包括 Twelve-Factor App)的完整配置解决方案。它被设计为在应用程序中工作,并且可以处理所有类型的配置需求和格式。它支持: 设置默认值 可以读取 JSON,TOML,YAML,HCL,envfile 和 Java properties 格式的配置文件 实时监控和重新读取配置文件(可选) ...
Viper 是适用于 Go 应用程序(包括 Twelve-Factor App)的完整配置解决方案。它被设计为在应用程序中工作,并且可以处理所有类型的配置需求和格式。它支持: 设置默认值 可以读取JSON,TOML,YAML,HCL,envfile 和Javaproperties 格式的配置文件 实时监控和重新读取配置文件(可选) ...
SetEnvPrefix("spf") // 将会自动转为大写BindEnv("id")os.Setenv("SPF_ID", "13") // 通常通过系统环境变量来设置id := Get("id") // 13 绑定命令行参数 Viper支持绑定pflags参数。 和BindEnv一样,当绑定方法被调用时,该值没有被获取,而是在被访问时获取。这意味着应该尽早进行绑定,甚至是在init...