viper4android io错误,viper操作文档
# viper操作文档
# 1 Viper简单介绍
# 1.1 什么是Viper
Viper介绍
Viper是Go应用程序的完整配置解决方案,包括12-Factor应用程序。它旨在在应用程序中工作,并可以处理所有类型的配置需求和格式。Viper可以被认为是所有应用程序配置需求的注册表。它支持: 设置默认值
从JSON,TOML,YAML,HCL和Java属性配置文件中读取
实时观看和重新读取配置文件(可选)
从环境变量中读取
从远程配置系统(etcd或Consul)读取,并观察变化
从命令行标志读取
从缓冲区读取
设置显式值
# 1.2 为何选择Viper
为何选择Viper
构建现代应用程序时,您不必担心配置文件格式; 你想专注于构建真棒软件。Viper就是为此提供帮助的。Viper为您做了以下事情: 以JSON,TOML,YAML,HCL或Java属性格式查找,加载和解组配置文件。
提供一种机制来为不同的配置选项设置默认值。
提供一种机制来为通过命令行标志指定的选项设置覆盖值。
提供别名系统,轻松重命名参数,而不会破坏现有代码。
可以很容易地区分用户提供命令行或配置文件与默认值相同的时间。
# 1.3 配置方式的优先级顺序 viper提供的配置方式的优先级顺序如下(由高到低): 1.设置显示调用(explicit call to Set)
2.命令行标志(flag)
3.环境变量(env)
4.配置文件(config)
5.远程键/值存储(key/value store)
6.默认值(default)
# 2 安装及使用
# 2.1 安装依赖
# 2.2 设置默认值
# 2.3 读取配置文件 Viper需要最少的配置,因此它知道在哪里查找配置文件。Viper支持JSON,TOML,YAML,HCL和Java Properties文件。Viper可以搜索多个路径,但目前单个Viper实例仅支持单个配置文件。Viper不会默认使用任何配置搜索路径,而是将默认值决定应用于应用程序。
以下是如何使用Viper搜索和读取配置文件的示例,定义在config目录下新建一个appConfig.yaml文件,文件内容如下
# 2.4 监听并重新读取配置文件 Viper支持在运行时让应用程序实时读取配置文件。需要重新启动服务器以使配置生效的日子已经一去不复返了,viper驱动的应用程序可以在运行时读取配置文件的更新,而不会错过任何一个节拍。
只需告诉viper实例watchConfig即可。您可以选择为Viper提供每次发生更改时运行的功能。
# 确保在调用之前添加所有configPath WatchConfig()
# 2.5 从io.Reader读取配置 Viper预定义了许多配置源,例如文件,环境变量,标志和远程K/V存储,但您不受它们的约束。您还可以实现自己的必需配置源并将其提供给viper。
# 2.6 设置并覆盖配置值
# 2.7 注册和使用别名 别名允许多个键引用单个值
# 2.8 使用环境变量 Viper完全支持环境变量。有四种方法可以帮助使用环境变量:
# ENV实例
# 使用flag Viper能够绑定到flag。就像BindEnv,在调用绑定方法时,不会设置该值。这意味着您可以尽早绑定,甚至可以在init()函数中绑定.
对于单个标志,该BindPFlag()方法提供此功能。
# 绑定一组现有的pflags
# flag接口 如果您不使用,Viper提供两个Go接口来绑定其他标志系统Pflags FlagValue代表一个标志。这是一个关于如何实现此接口的非常简单的示例:
一旦你的flag实现了这个接口,你可以告诉Viper绑定它:
# 2.9 远程key/value存储 Viper可以从例如etcd、Consul的远程Key/Value存储系统的一个路径上,读取一个配置字符串(JSON, TOML, YAML 或 HCL 格式). 这些值优先于默认值,但会被从磁盘文件、命令行 flag、环境变量的配置所覆盖.要在Viper中启用远程支持,请对viper/remote 包进行空白导入:
# 远程key/value存储示例 - 未加密
# 远程key/value存储示例 - 加密
# 监听etcd中的变化 - 未加密
# 3 Viper获取值方法汇总 在Viper中,有几种方法可以根据值的类型获取值。如果找不到,每个Get函数都将返回零值。IsSet()方法检查给定密钥是否存在。
存在以下功能和方法:
# 4 访问嵌套数据
# 4.1 JSON嵌套 访问器方法也接受深层嵌套键的格式化路径。Viper可以通过传递.分隔的键路径来访问嵌套字段。
# 4.2 YAML嵌套示例一
yaml文件如下,使用4.1的Get方法获取数据
# 4.3 YAML多层嵌套示例二 yaml文件如下,结构体嵌套的方式接受,特别注意:读取多层嵌套 字段首字母必须大写
# 5 更多参考资料 目前涉及viper的使用大致就是这些了。在应用程序中使用到viper,其灵活的配置选项可以更好地实现容器化部署。并且可以很好适应多种应用场景,让应用程序摆脱配置的束缚。
viper4android io错误,viper操作文档相关推荐
- 赫拉(hera)分布式任务调度系统之操作文档
文章目录 前言 操作文档 登录和注册 用户 用户组 总结 首页 机器组监控 系统管理 用户管理 用户组 用户 总结 监控管理 机器组管理&worker管理 任务管理 任务详情 任务依赖 上游任 ...
- 如何修改DynEd的学生记录服务器,DynEd教师管理端操作文档..docx
DynEd教师管理端操作文档. DynEd教师管理端Records Manager操作文档DynEd教学理念语言是一种技能传统的英语教学太过注重读写,而疏于听说能力的发展.学生花费了大量的时间来背单词 ...
- mallplus多商户商城全流程 操作文档
下载地址 https://gitee.com/catshen/zscat_sw 用户端 http://www.yjlive.cn:8082/#/ 商户端 http://www.yjlive.cn:80 ...
- 狮子鱼社区团购支付时出现appid和mch-id不匹配的解决方法及狮子鱼官方操作文档
解决方法:这点需要到微信小程序后台设置:微信支付–关联更多商户号:如下图所示: 此处绑定商户号需要先将该小程序认证,认证有两种方法,一种是直接给该小程序交300元给微信官方:如果已经有公众号已经认证过 ...
- ElasticSearch入门简介、安装ES(安装Kibana和IK分词器)使用 Postman连接ES进行测、ESRestAPI(操作索引CRUD操作文档CRUD)、练习
要理解倒排索引 要能够使用DSL命令操作索引库 要能够使用DSL命令操作文档 要能够使用RestAPI操作索引库.文档 一.ES简介 理解倒排索引的概念和作用 理解es和MySql的区别和使用场景 1 ...
- viper4android io错误,Go之Viper
简介 Viper是适用于Go应用程序的完整配置解决方案.它被设计用于在应用程序中工作,并且可以处理所有类型的配置需求和格式; Viper是适用于Go应用程序(包括Twelve-Factor App)的 ...
- viper4android io错误,golang常用库之配置文件解析库-viper使用详解
一.viper简介 viper 配置管理解析库,是由大神 Steve Francia 开发,他在google领导着 golang 的产品开发,他也是 gohugo.io 的创始人之一,命令行解析库 c ...
- viper4android io错误,Go viper包处理JSON笔记
第一部分 前景提要 一.背景 用Go搭一个小项目, 按传统的套路把开发环境和生产环境配置信息写在配置文件config.json中, 初始化加载配置,解析出数据.看着是解析一个JSON的小事,过程中却发 ...
- aspose.words for java操作文档doc,设置一级二级三级标题以及段落表格等详情
实现将aspose.words的相关组件jar包 以下是我自己编辑整理的工具类,欢迎交流 package com;import java.io.InputStream;import org.slf4j ...
最新文章
- JAVA用递归方法判断某个字串是否是回文
- android 编译 oserror,Android-4.4.2 编译出错 OSError: [Errno 2] No such file or directory
- 多线程和MsgWaitForMultipleObjects
- 《计算机科学与工程导论:基于IoT和机器人的可视化编程实践方法第2版》一1.2.2 团队组建...
- 学习过程中的一些细节
- Java应用一般架构
- 敏捷开发般若敏捷系列之四:如何推广敏捷(上)(无我,无人,无众生)
- Android绘制基础及手写绘制实例
- 毕业设计(十七)---发表文章(3)之- 使用ckeditor上传图片(flash)
- 3.8 Spark 用户日志分析
- php中的冒泡排序和选择排序d
- 汉字录入到计算机的过程,如何快速把书中文字录入到电脑中
- idea中自动生成Java类图和时序图
- 大航海时代2 全村落 探索 MD ROM 静态 HACKER
- 好的医疗器械管理软件应该具备哪些功能?
- 计算机连接了无线网络显示有限的访问权限,win7连接无线网络提示有限的访问权限怎么办...
- hive根据出生日期算年龄-粗略版
- 深度学习中数据的拆分打乱
- 台式电脑F1F2变成音量键怎么办
- Docker删除Exited镜像
热门文章
- OpenCV极坐标转换函数warpPolar的使用
- CF 472D Riverside Curio
- WR | 西湖大学鞠峰组揭示微塑料污染对人工湿地菌群与脱氮功能的影响
- 安装ecshop的方法·
- Boll布林带波动率策略
- ESP8266 RTOSSDK3.0 的工程同步到3.4
- 开发者出海跨境收款——如何完美解决限额问题?
- iOS如何转让 App 给公司或个人
- 网线/双绞线上各标识CAT, AWG, PR, UTP/STP/FTP/SFTP的含义
- HTML5 + CSS +JavaScript基本标签的使用(入门