教程集 www.jiaochengji.com
教程集 >  Golang编程  >  golang教程  >  正文 go读取配置文件-viper

go读取配置文件-viper

发布时间:2022-03-06   编辑:jiaochengji.com
教程集为您提供go读取配置文件-viper等资源,欢迎您收藏本站,我们将为您提供最新的go读取配置文件-viper资源
<svg xmlns="http://www.w3.org/2000/svg" style="display: none;"><path stroke-linecap="round" d="M5,0 0,2.5 5,5z" id="raphael-marker-block" style="-webkit-tap-highlight-color: rgba(0, 0, 0, 0);"/></svg>

<h3>go读取配置文件-viper</h3> <ul><li>Go-viper</li><li>目录结构</li><li>读取本地配置文件</li><li>读取远程key/value</li><li>Install</li><li>What is Viper</li><li>License</li></ul>

<h1>Go-viper</h1>

Github: https://github.com/golang-collection/Go-viper

Viper是适用于Go应用程序的完整配置解决方案。它被设计用于在应用程序中工作,并且可以处理所有类型的配置需求和格式。

本项目演示了读取本地配置文件和consul的key/value配置。

<h1>
目录结构</h1> <pre><code>- config 配置文件存放位置 - normal 读取本地配置文件 - remote 读取远程配置文件 </code></pre> <h1>读取本地配置文件</h1>

在config文件夹下创建config.json文件,如下所示:

<pre><code class="lang-json hljs"><span class="token punctuation">{</span> <span class="token string">"mysql"</span><span class="token punctuation">:</span> <span class="token punctuation">{</span> <span class="token string">"user"</span><span class="token punctuation">:</span> <span class="token string">"root"</span><span class="token punctuation">,</span> <span class="token string">"password"</span><span class="token punctuation">:</span> <span class="token string">""</span><span class="token punctuation">,</span> <span class="token string">"host"</span><span class="token punctuation">:</span> <span class="token string">"127.0.0.1:3306"</span><span class="token punctuation">,</span> <span class="token string">"db_name"</span><span class="token punctuation">:</span> <span class="token string">"example"</span> <span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token string">"redis"</span><span class="token punctuation">:</span> <span class="token punctuation">{</span> <span class="token string">"host"</span><span class="token punctuation">:</span> <span class="token string">"127.0.0.1:6553"</span> <span class="token punctuation">}</span><span class="token punctuation">,</span> <span class="token string">"rabbitmq"</span><span class="token punctuation">:</span> <span class="token punctuation">{</span> <span class="token string">"user"</span><span class="token punctuation">:</span> <span class="token string">"root"</span><span class="token punctuation">,</span> <span class="token string">"password"</span><span class="token punctuation">:</span> <span class="token string">"root"</span><span class="token punctuation">,</span> <span class="token string">"host"</span><span class="token punctuation">:</span> <span class="token string">"127.0.0.1:5124"</span> <span class="token punctuation">}</span> <span class="token punctuation">}</span> </code></pre>

核心代码为:

<pre><code class="lang-go hljs">viper<span class="token punctuation">.</span><span class="token function">SetConfigFile</span><span class="token punctuation">(</span><span class="token string">"/Users/super/develop/Go-viper/config/config.json"</span><span class="token punctuation">)</span> <span class="token comment">//文件名</span> err <span class="token operator">:=</span> viper<span class="token punctuation">.</span><span class="token function">ReadInConfig</span><span class="token punctuation">(</span><span class="token punctuation">)</span> <span class="token comment">// 会查找和读取配置文件</span> </code></pre>

更多细节:normal

<h1>
读取远程key/value</h1>

在consul的key/value中创建config,例如:

核心代码为:

<pre><code class="lang-go hljs">err <span class="token operator">:=</span> viper<span class="token punctuation">.</span><span class="token function">AddRemoteProvider</span><span class="token punctuation">(</span><span class="token string">"consul"</span><span class="token punctuation">,</span> config<span class="token punctuation">.</span>CONSUL_URL<span class="token punctuation">,</span> config<span class="token punctuation">.</span>CONSUL_CONFIG<span class="token punctuation">)</span> <span class="token keyword">if</span> err <span class="token operator">!=</span> <span class="token boolean">nil</span> <span class="token punctuation">{</span> <span class="token keyword">return</span> err <span class="token punctuation">}</span> viper<span class="token punctuation">.</span><span class="token function">SetConfigType</span><span class="token punctuation">(</span><span class="token string">"json"</span><span class="token punctuation">)</span> <span class="token comment">// Need to explicitly set this to json</span> err <span class="token operator">=</span> viper<span class="token punctuation">.</span><span class="token function">ReadRemoteConfig</span><span class="token punctuation">(</span><span class="token punctuation">)</span> </code></pre>

更多细节:remote

<h1>
Install</h1> <pre><code class="lang-bash hljs">go get github.com/spf13/viper </code></pre> <h1>What is Viper</h1>

Viper可以适配任何应用程序,可以处理所有类型的配置需求和格式。它支持:

<ul><li>设置默认值</li><li>读取JSON, TOML, YAML, HCL, envfile和Java属性配置文件</li><li>实时查看和重新读取配置文件(可选)</li><li>从环境变量中读取</li><li>从远程配置系统(etcd或Consul)读取,并观察变化</li><li>从命令行标志读取</li><li>读取缓冲区</li><li>设置明确的值</li></ul><h1>
License</h1>

MIT

Copyright © 2020 golang collection

到此这篇关于“go读取配置文件-viper”的文章就介绍到这了,更多文章或继续浏览下面的相关文章,希望大家以后多多支持JQ教程网!

您可能感兴趣的文章:
Go语言从入门到精通 -【web项目实战篇】- 读取配置文件
一款不错的golang配置文件库 - Viper
go读取配置文件-viper
go基于viper实现配置文件热更新及其源码分析
Golang库 - viper读取配置文件
Viper——Go语言写的配置文件读取写入工具神器
go配置文件读取
golang之配置文件
Golang加载yaml类型配置文件问题
golang模块viper读取配置文件

[关闭]
~ ~