最近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
调用方式:
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("~")
}
fmt.Println(port)
}