go-conf

Go 实现的轻量级的 config 库
授权协议 MIT
开发语言 Google Go
所属分类 程序开发、 其他开发相关
软件类型 开源软件
地区 国产
投 递 者 洪和风
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

go-conf 是使用 Go 实现的一个轻量级的 config 库,参考了 ozzo-config 的设计,但具有更优的性能和支持动态移植配置的功能。

go-conf 采用 MIT 开源协议。

下载安装

go get github.com/syyongx/cconf

功能

  1. 从配置文件中读取配置,默认支持 JSON 格式文件,提供了接口,也可非常方便地扩展支持其他格式配置文件;

  2. 可将一个 go 的结构体数据直接动态移植到 config 实例中;

  3. 不需要提前构建结构体就可以直接获取你想要的数据;

快速开始

import github.com/syyongx/cconf

func main() {
    c := cconf.New()
    age := c.GetInt("age", 18)
    name := c.Get("name").(string)
    c.Set("email", "default@default.com")
    email := c.GetString("email")
}

接口

New() *Conf
RegisterLoadFunc(typ string, fn loadFunc)
Load(files ...string) error
LoadWithPattern(pattern string) error

Set(key string, val interface{}) error
Get(key string, def ...interface{}) interface{}
GetString(key string, def ...string) string
GetInt(key string, def ...int) int
GetInt64(key string, def ...int64) int64
GetFloat(key string, def ...float64) float64
GetBool(key string, def ...bool) bool

SetStore(data ...interface{})
GetStore() interface{}

Register(name string, provider interface{}) error
Populate(v interface{}, key ...string) (err error)
  • Golang 配置文件库 Viper和ini 这是一个简单使用golang配置文件库的记录,如果有问题,欢迎指出 一、Viper viper 是一个完整的 Go应用程序的配置解决方案,它被设计为在应用程序中工作,并能处理所有类型的配置需求和格式。 下载命令 go get github.com/spf13/viper viper支持特性功能如下: 设置默认值 读取 JSON、TOML、YAML、HC

  • 一、报错信息: [root@ecs-sqlserver2019 bin]# ./mssql-conf setup Locale en_AU not supported. Using en_US. Choose an edition of SQL Server:   1) Evaluation (free, no production use rights, 180-day limit)   2)

  • http://blog.csdn.net/cuijiyue/article/details/51428835 1 配置文件 conf文件作为wpa_supplicant的配置文件,一般叫做 wpa_supplicant.conf 。其中存储着wpa_supplicant的运行参数和以保存的网络列表。 conf文件的路径,通过启动wpa_supplicant时的 –c 参数传入,初始化过程中赋值到w

  • 搞了一天,容器就是启动不了。开始以为是部署代码的问题,后面在服务器直接安装了go环境,直接启动,提示redis ping error。难道是密码错误?打印了一下,发现真是密码错误,密码丢了部分字符。密码类似:dsdsdwqwqw#888dsds$wee,结果打印出来的是dsdsdwqwqw#888dsds,神奇了不是?另外几个服务也是用的这个密码,并没有丢失字符。比对了代码 go-zero的启动文

  • 一、获取jwt项目仓库         go get github.com/golang-jwt/jwt 二、编写jwt token 产生和解析 // tokens package models import ( "errors" "mygo2/conf" "time" "github.com/golang-jwt/jwt" ) const ( TokenTypeUser = "

  • go控制台运行命令 go run main.go --config=config/dev.toml 等号右边的config为配置文件所在的文件夹,若配置文件名为prod.yaml,所在文件夹为conf,则运行命令应该写成: go run main.go --config=conf/prod.yaml

 相关资料
  • 主要内容:使用普通函数创建 goroutine,使用匿名函数创建goroutine在编写 Socket 网络程序时,需要提前准备一个线程池为每一个 Socket 的收发包分配一个线程。开发人员需要在线程数量和 CPU 数量间建立一个对应关系,以保证每个任务能及时地被分配到 CPU 上进行处理,同时避免多个任务频繁地在线程间切换执行而损失效率。 虽然,线程池为逻辑编写者提供了线程分配的抽象机制。但是,如果面对随时随地可能发生的并发和线程处理需求,线程池就不是非常直观和方便了。能否

  • 本文向大家介绍Android EasyBarrage实现轻量级弹幕效果,包括了Android EasyBarrage实现轻量级弹幕效果的使用技巧和注意事项,需要的朋友参考一下 本文介绍了Android EasyBarrage实现轻量级弹幕效果,分享给大家,具体如下: 概述 EasyBarrage是Android平台的一种轻量级弹幕效果目前支持以下设置: 自定义字体颜色,支持随机颜色; 自定义字体大

  • 问题内容: 我的应用程序是带有密集字符串处理的多线程。我们正在经历过多的内存消耗,并且性能分析表明这是由于String数据引起的。我认为使用某种flyweight模式实现甚至是缓存将极大地受益于内存消耗(我可以肯定Strings通常是重复的,尽管我在这方面没有任何硬数据)。 我看过Java常量池和String.intern,但似乎可以引发一些PermGen问题。 在Java中实现应用程序范围的多线

  • 本文向大家介绍轻量级的Web框架Flask 中模块化应用的实现,包括了轻量级的Web框架Flask 中模块化应用的实现的使用技巧和注意事项,需要的朋友参考一下 Flask是一个轻量级的Web框架。虽然是轻量级的,但是对于组件一个大型的、模块化应用也是能够实现的,“蓝图”就是这样一种实现。对于模块化应用的实现,在Flask 0.2版本中进行了设计。本文暂时不对“蓝图”做详细的介绍,而是先从0.2版本

  • 本文向大家介绍详解基于 Node.js 的轻量级云函数功能实现,包括了详解基于 Node.js 的轻量级云函数功能实现的使用技巧和注意事项,需要的朋友参考一下 导语 在万物皆可云的时代,你的应用甚至不需要服务器。云函数功能在各大云服务中均有提供,那么,如何用“无所不能”的 node.js 实现呢? 一、什么是云函数? 云函数是诞生于云服务的一个新名词,顾名思义,云函数就是在云端(即服务端)执行的函

  • 本文向大家介绍vue移动端轻量级的轮播组件实现代码,包括了vue移动端轻量级的轮播组件实现代码的使用技巧和注意事项,需要的朋友参考一下 一个简单的移动端卡片滑动轮播组件,适用于Vue2.x c-swipe 2.0 全新归来。重写了全部的代码,更靠谱的质量,更优秀的性能 English Document 安装 npm install c-swipe --save 使用 注册组件 在 .vue 单文件

  • 本文向大家介绍基于Python的SQL Server数据库实现对象同步轻量级,包括了基于Python的SQL Server数据库实现对象同步轻量级的使用技巧和注意事项,需要的朋友参考一下 缘由 日常工作中经常遇到类似的问题:把某个服务器上的某些指定的表同步到另外一台服务器。 类似需求用SSIS或者其他ETL工作很容易实现,比如用SSIS的话,就会会存在相当一部分反复的手工操作。 建源的数据库信息,

  • 本文向大家介绍Spring boot项目redisTemplate实现轻量级消息队列的方法,包括了Spring boot项目redisTemplate实现轻量级消息队列的方法的使用技巧和注意事项,需要的朋友参考一下 背景 公司项目有个需求, 前端上传excel文件, 后端读取数据、处理数据、返回错误数据, 最简单的方式同步处理, 客户端上传文件后一直阻塞等待响应, 但用户体验无疑很差, 处理数据可