viper 支持 Yaml、Json、 TOML、HCL 等格式,读取非常的方便。
viper 官网有案例:https://github.com/spf13/viper
go get github.com/spf13/viper
创建 config.yaml 文件
database: driver: mysql host: 127.0.0.1 port: 3306 username: blog dbname: blog password: 123456
建一个 config.go 用于初始化配置文件
func InitConfig() { path, err := os.Getwd() if err != nil { panic(err) } viper.AddConfigPath(path + "/config/dev") viper.SetConfigName("config") viper.SetConfigType("yaml") if err := viper.ReadInConfig(); err != nil { panic(err) } }
简单使用:
username := viper.GetString("database.username") password := viper.GetString("database.password") host := viper.GetString("database.host") port := viper.GetInt("database.port") dbname := viper.GetString("database.dbname") dsn := fmt.Sprintf("%s:%s@tcp(%s:%d)/%s?charset=utf8&parseTime=True&loc=Local",username,password,host, port, dbname) GormPool, err = gorm.Open("mysql", dsn)
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持小牛知识库。
问题内容: 我正在从这里使用出色的毒蛇库:https : //github.com/spf13/viper 我正在尝试读取hcl中的配置文件(尽管它也可能是JSOn或YAML文件),如下所示: 到目前为止,我的代码如下: 我遇到的最大问题是使用group选项。这可以是多个不同的组。 当我在使用中阅读它时,它似乎不起作用,所以我使用了标准函数。转储时,结果结构如下所示: 我使用反射时似乎是切片类型。
我是阿帕奇光束的新手。我有一个要求读一个文本文件的格式如下所示 在这里,直到一个空行的所有行都是一条记录的一部分,需要一起处理(例如,作为列插入到表中)。上面的示例对应于一个只有2条记录的文件。我正在使用ReadFromText读取文件并对其进行处理。它将每一行作为一个元素读取。然后我尝试循环和处理,直到得到空行。
因此,我们有一个普通的批处理应用程序,我们决定移植到dropwizard。我们希望使用dropwizard获得许多现成的好处,如运行状况检查、指标等。 稍后我们可能会添加一些REST管理endpoint,但现在我们只是使用DropWizard托管服务在单独的线程中启动应用程序。我们创建了一个示例配置yml文件,但它基本上只是一个框架。 这种移植主要是提升和移位,我们希望避免在代码中进行大量重构。该
我试图配置SUTime注释器(“ner”的一部分),以使用我自己的日期/时间规则文件,而不是Stanford CoreNLP模型的分发JAR中位于“models/SUTime/”中的开箱即用的规则文件。 我这样做的原因是,我想稍微修改SUTime规则正在执行的操作。 根据官方的SUTime文档,所需要的只是以逗号分隔的文件路径的形式指定“SUTime.rules”属性。 但是在我这样做之后,Cor
MOSN 自定义配置说明。 本文是对 MOSN 自定义配置的说明。 Duration String 字符串,由一个十进制数字和一个时间单位后缀组成,有效的时间单位为 ns、us(或?s)、ms、s、m、h,例如 1h、3s、500ms。 metadata metadata 用于 MOSN 路由和 Cluster Host 之间的匹配。 { "filter_metadata":{ "mo
如果你想自定义 Next.js 的高级配置,可以在根目录下新建next.config.js文件(与pages/ 和 package.json一起) 注意:next.config.js是一个 Node.js 模块,不是一个 JSON 文件,可以用于 Next 启动服务已经构建阶段,但是不作用于浏览器端。 // next.config.js module.exports = { /* config