go语言读取配置文件

幸运草
幸运草
幸运草
1033
文章
3
评论
2020年4月15日20:57:38
评论
171

最近GO语言开发,最大的一个感触就是需要自己动手写很多东西。

由于我自己的项目经常需要线上线下切换,本地编译好之后放到线上经常忘记将数据库地址改为线上的,导致很多时间浪费在这里。所以在网上找了一些引入INI配置文件的包,打算放一个到线上,一个线下,GO在运行时自己根据撸进去的配置文件参数连接不同数据库。

在网上找了一些发现大量的BUG,非常不好用,所以今天利用大半天自己写了一个简单的包,做了不少的安全判断,已经在生产环境使用了。

git地址:

go get https://github.com/aWildProgrammer/fconf

以下为演示文件,保存为demo.ini

[mysql]
db1.Name = testMysqlDB
db1.Host = 127.0.0.1
db1.Port = 3306
db1.User = root
db1.Pwd = test

; 测试INI风格的注释
; 这两行数据的前前面加入了分号,因此,这些数据被认为是注释,将不会影响配置文件正常情况

[tcp]
Port=3309

调用方式:

import (
    "fmt"
    "github.com/aWildProgrammer/fconf"
)

func main() {
	c, err := fconf.NewFileConf("./demo.ini")
	if err != nil {
		fmt.Println(err)
		return
	}
	fmt.Println(c.String("mysql.db1.Host"))
	fmt.Println(c.String("mysql.db1.Name"))
	fmt.Println(c.String("mysql.db1.User"))
	fmt.Println(c.String("mysql.db1.Pwd"))

	// 取得配置时指定类型
	port, err := c.Int("mysql.db1.Port")
	if err != nil {
		panic(err)
	}
	fmt.Println(port)
}

输出:
127.0.0.1
testMysqlDB
root
test
3306

特别声明:以上文章内容仅代表作者本人观点,不代表变化吧观点或立场。如有关于作品内容、版权或其它问题请于作品发表后的30日内与变化吧联系。

转载请注明:{{title}}-变化吧
  • 赞助本站
  • 微信扫一扫
  • weinxin
  • 赞助本站
  • 支付宝扫一扫
  • weinxin
幸运草
Go语言接口规则 前端框架

Go语言接口规则

Go语言接口规则 接口是一个或多个方法签名的集合。任何类型的方法集中只要拥有该接口对应的全部方法签名。就表示它 "实现" 了该接口,无须在该类型上显式声明实现了哪个接口。对应方法,是指有相同名称、参数...
Go语言中处理 HTTP 服务器 前端框架

Go语言中处理 HTTP 服务器

1 概述 包 net/http 提供了HTTP服务器端和客户端的实现。本文说明关于服务器端的部分。 快速开始: package main import (   "log"   "net/http" )...