代码地址如下:
http://www.demodashi.com/demo/14411.html

简介

oozgconf基于Golang开发,用于项目中配置文件的读取以及加载,是一个轻量级的配置文件工具。

功能

  1. 配置文件读取
  2. 配置文件解析

支持配置文件格式

  • .json
  • .toml
  • .xml
  • .yaml

安装

$ go get -u github.com/usthooz/oozgconf

实现思路

在后端项目中,配置文件已经是一个不可或缺的东西了,格式也是多种多样。

流程结构

如下图所示为项目实现流程及结构:

代码目录结构

主要代码

  • 配置文件后缀名常量定义
const (JsonSub string = "json"YamlSub string = "yaml"TomlSub string = "toml"XmlSub  string = "xml"
)
  • 对象结构
type OozGconf struct {// ConfPath config file path->default: ./config/config.yamlConfPath string// Subffix config file subffixSubffix string
}
  • 新建gconf对象
    在使用时,如果不指定配置文件的路径,那么默认为./config/config.yaml,同时如果不指定文件类型,则自动通过解析文件名来获得配置文件的后缀。
// NewConf new conf object
func NewConf(confParam *OozGconf) *OozGconf {if len(confParam.ConfPath) == 0 {confParam.ConfPath = "./config/config.yaml"}return confParam
}
  • 获取配置
/*confpath: config file path->default: ./config/config.yamlsubffix: config file subffie->option
*/
func (oozConf *OozGconf) GetConf(conf interface{}) error {// read config filebs, err := ioutil.ReadFile(oozConf.ConfPath)if err != nil {return err}if len(oozConf.Subffix) == 0 {// get file subffixoozConf.Subffix = strings.Trim(path.Ext(path.Base(oozConf.ConfPath)), ".")}// check analyswitch oozConf.Subffix {case JsonSub:err = json.Unmarshal(bs, conf)case TomlSub:err = toml.Unmarshal(bs, conf)case YamlSub:err = yaml.Unmarshal(bs, conf)case XmlSub:err = xml.Unmarshal(bs, conf)default:err = fmt.Errorf("GetConf: non support this file type...")}return err
}

使用例程

  • example
import ("github.com/usthooz/oozgconf""github.com/usthooz/oozlog/go"
)type Config struct {Author stringMysql  struct {User     stringPassword string}
}func main() {var (conf Config)// new conf objectozconf := oozgconf.NewConf(&oozgconf.OozGconf{ConfPath: "./config.json", // 可选,默认为./config/config.yamlSubffix:  "", // 可选,如果不指定则自动解析文件名获取})// get configerr := ozconf.GetConf(&conf)if err != nil {uoozg.Errorf("GetConf Err: %v", err.Error())}uoozg.Infof("Res: %v", conf)
}

运行结果

其他

没有
Golang配置文件解析-oozgconf

代码地址如下:
http://www.demodashi.com/demo/14411.html

注:本文著作权归作者,由demo大师发表,拒绝转载,转载需要作者授权

Golang配置文件解析-oozgconf相关推荐

  1. viper4android io错误,golang常用库之配置文件解析库-viper使用详解

    一.viper简介 viper 配置管理解析库,是由大神 Steve Francia 开发,他在google领导着 golang 的产品开发,他也是 gohugo.io 的创始人之一,命令行解析库 c ...

  2. Golang 多种配置文件解析

    Golang 配置文件相关操作 本文以读取数据库配置文件为例 1.JSON 文件 package main​/*解析 json 格式的配置文件文件内容如下:{"type": &qu ...

  3. mybatis配置文件解析

    mybatis配置文件解析 mybatis核心配置文件`mybatis-config.xml文件. mybatis的配置文件包含了会深深影响mybatis行为的设置和属性信息. 能配置的内容: con ...

  4. 【c语言】C语言配置文件解析库——iniparser

    转载自:http://blog.csdn.net/u011192270/article/details/49339071 C语言配置文件解析库--iniparser 前言:在对项目的优化时,发现Lin ...

  5. C语言配置文件解析库——iniparser

    C语言配置文件解析库--iniparser 1. 1.1前言:在对项目的优化时,发现Linux下没有专门的供给C语言使用的配置文件函数,于是搜索到了iniparser库,可以像那些面向对象语言一样,使 ...

  6. Nginx安装与配置文件解析

    导读 Nginx是一款开放源代码的高性能HTTP服务器和反向代理服务器,同时支持IMAP/POP3代理服务,是一款自由的软件,同时也是运维工程师必会的一种服务器,下面我就简单的说一下Nginx服务器的 ...

  7. Kickstart配置文件解析

    Kickstart配置文件解析 参考:https://www.douban.com/note/270359374/?type=likehttp://blog.51cto.com/molinux/548 ...

  8. python 接口测试 如何写配置文件_python接口自动化测试 - configparser配置文件解析器详细使用...

    configparser简介 ConfigParser模块已在Python 3中重命名为configparser 该模块定义了ConfigParser类. ConfigParser类实现一种基本的配置 ...

  9. bind配置文件解析

    bind配置文件解析 bind作为一般的dns服务器的解析服务. /etc/named.conf #bind的全局配置文件 /etc/named.rfc1912.zones #域配置文件 /var/n ...

最新文章

  1. jtabel 遍历_Swing中经常会遇到的若干问题——JTable(持续更新) | 学步园
  2. java 面向对象 小练习
  3. redis基础整理(转载+与python结合)
  4. 《PWA实战:面向下一代的Progressive Web APP》读书笔记
  5. C++之C/C++内存对齐
  6. 变成一列_VBA实践(6)--excel横向排列的数据表变成竖向排列
  7. php 发邮件 带附件,PHP发送带有附件的电子邮件
  8. c语言源程序总是由一个或多个函数组成,2016年中山大学卡内基梅隆大学C语言程序设计复试笔试仿真模拟题...
  9. pxe安装linux系统工具,Linux的PXE自动化无人值守安装系统
  10. 机器学习中性能评估指标中的准确率(Accuracy)、召回率(Recall=TPR)、精确率(Precision)、误报率(FPR)、漏报率(FNR)及其关系
  11. 全球及中国家具市场消费规模与运营能力状况分析报告2022版
  12. python源码剖析_Python源码剖析-深度探索动态语言核心技术.陈儒.PDF版www.atcpu.com...
  13. SmartDrv的前世今生——PrimoCache_2.2.0汉化
  14. | 码教授创始人倾情回馈母校四川大学
  15. 不忘初心 牢记使命 拉卡拉支付积极履行社会责任
  16. 操作系统中文件系统-文件的分类
  17. 今天和几个朋友交流个人品牌的看法
  18. VPC NAT(SANT,NANT)实验
  19. SAP API 开发方法大全
  20. Django 规范编程5

热门文章

  1. mysql set语句_从强网杯随便注浅析mysql存储过程
  2. python 直线过滤掉不在边缘上的点_不存在所谓的机器学习平台
  3. nexttick使用场景_使用Jest实现Vue自动化测试
  4. 【STM32】【STM32CubeMX】STM32CubeMX的使用之一:工程建立之点亮你的LED
  5. 【Arduino】OTTO机器人(做二次开发的一点点总结)
  6. 数据结构与算法分析(十)——母牛的故事
  7. linux下的进程间通信-管道及共享内存
  8. 列表ls按照升序排列的python内置函数是_Python习题集
  9. Java面试之锁-读写锁
  10. 题解 洛谷P2147/BZOJ2049【[SDOI2008]洞穴勘测】