简介
Viper是一个完整的Go应用程序配置解决方案,可以用于读取 JSON、TOML、YAML、HCL、env file和Java properties 配置文件。可以使用简单的方法来读取和设置配置值,并且可以设置默认值和类型转换器来确保程序始终能够读取到有效的配置值。
我们通常将一些配置信息,如数据库的访问路径,端口号等存放在配置文件中方便统一修改。
在 Java 中通常为 application.yml 或者 applicatiton.properties 文件,然后在 springboot 框架下使
用 @ConfigurationProperties(prefix=”setting_name”) 或者 @Value(“valueStr”) 的形式来读取。
Viper 就是 go 用于做这一部分的工作类库
相关链接:
安装
在项目中打开命令行执行如下命令
1 | go get github.com/spf13/viper |
使用
在 项目根目录/src/resource 资源目录下新建一个 app.yml 配置文件,并写入以下配置项
1 | settings: |
注:我们现在约定 settings 为配置项根节点,之后新增例如 settings:database之类的节点,则是在settings下新增一个 database节点,而不是重复设置多一个 settings。 其他新增/修改项也遵循此说法。
如在settings下新增 database内容, 并修改 server下的端口号为9999,示例如下:
正确示例为:
1 | settings: |
错误示例为:
1 | settings: |
测试
在 项目根目录/src/test 目录下新建一个 pkg 目录,用于测试引入的第三方类库。在目录下新建 test_viper.go 测试文件
1 | // main 方法必须使用 main 包 |
执行程序后在控制台输出如下结果:
1 | 初始化 app 配置成功 |


