Go学习笔记一:解析toml配置文件
本文系作者原创,转载请注明出处https://www.cnblogs.com/sonofelice/p/9085291.html 。
一些mysql或者日志路径的信息需要放在配置文件中。那么本博文主要介绍go对toml文件的解析。
使用了 "github.com/BurntSushi/toml" 标准库。
1 toml文件的写法
[Mysql]
UserName = "sonofelice"
Password = ""
IpHost = "127.0.0.1:8902"
DbName = "sonofelice_db"
2 对toml文件的解析
为了要解析上面的toml文件,我们需要定义与之对应的struct:
type Mysql struct {
UserName string
Password string
IpHost string
DbName string
}
那么其实可以写这样一个conf.go
package conf import (
"nlu/log"
"github.com/BurntSushi/toml"
"flag"
) var (
confPath string
// Conf global
Conf = &Config{}
) // Config .
type Config struct {
Mysql *Mysql
} type Mysql struct {
UserName string
Password string
IpHost string
DbName string
} func init() {
flag.StringVar(&confPath, "conf", "./conf/conf.toml", "-conf path")
} // Init init conf
func Init() (err error) {
_, err = toml.DecodeFile(confPath, &Conf)
return
}
通过简单的一行代码toml.DecodeFile(confPath, &Conf),就把解析好的struct存到了&Conf里面
那么我们在main里面调用一下init:
func main() {
flag.Parse()
if err := conf.Init(); err != nil {
log.Error("conf.Init() err:%+v", err)
}
mysqlConf := conf.Conf.Mysql
fmt.Println(mysqlConf.DbName)
}
然后运行一下main函数,就可以看到控制台中打印出了我们在conf.toml中配置的
sonofelice_db
Go学习笔记一:解析toml配置文件的更多相关文章
- Solr 6.7学习笔记(02)-- 配置文件 managed-schema (schema.xml) -- 样例(6)
managed-schema 样例: <?xml version="1.0" encoding="UTF-8" ?> <!-- License ...
- Solr 6.7学习笔记(02)-- 配置文件 managed-schema (schema.xml)(3)
5. <fieldType> fieldType主要定义了一些字段类型,其name属性值用于前面<field>中的type属性的值.e.g. <fieldTyp ...
- Solr 6.7学习笔记(02)-- 配置文件 managed-schema (schema.xml) - filter(5)
自定义fieldType时,通常还会用到filter.filter必须跟在tokenizer或其它filter之后.如: <fieldType> <analyzer> < ...
- Solr 6.7学习笔记(02)-- 配置文件 managed-schema (schema.xml)(1)
刚学Solr(版本6.7.0),新建一个core时,提示要求schema.xml文件,我找了半天也没在源码包中找到名为schema.xml的文件.这个版本其实用的是managed-schema文件,没 ...
- WCF学习笔记1--发布使用配置文件的服务
关于WCF的入门网上资料很多,可以参考蒋金楠老师的博客http://www.cnblogs.com/artech/archive/2007/02/26/656901.html,我是从这篇博客开始学习的 ...
- java学习笔记DOM4J解析(7)
DOM4J即Document Object Model for Java使用java技术以文档方式解析XML数据的模型. DOM4J是开源组织提供的一个免费的.强大的XML解析工具,如果开发者需要在项 ...
- Solr 6.7学习笔记(02)-- 配置文件 managed-schema (schema.xml)(2)
接上篇 2. <dynamicField> 为满足前辍或后辍的一些字段提供统一的定义.如<dynamicField name="*_s" index=&qu ...
- 【学习笔记】Struts2之配置文件struts.xml
在默认情况下,Struts2只自动加载类加载路径下的struts.xml.default-struts.xml和struts-plugin.xml三类文件.但是随着应用规模的增大,系统中Action数 ...
- JavaWeb学习笔记——SAX解析
import org.xml.sax.Attributes; import org.xml.sax.SAXException; import org.xml.sax.helpers.DefaultHa ...
随机推荐
- dp之多重背包hdu1059
题意:价值为1,2,3,4,5,6. 分别有n[1],n[2],n[3],n[4],n[5],n[6]个.求能否找到满足价值刚好是所有的一半的方案. 思路:简单的多重背包,我建议多重背包都用二进制拆分 ...
- Unix系统编程()malloc和free的实现
尽管malloc和free所提供的内存分配接口比之brk和sbrk要容易许多,但在使用时仍然容易犯下各种编程错误. 理解malloc和free的实现,将使我们洞悉产生这些错误的原因以及如何才能避免此类 ...
- SQL Server 2012附加数据库报错
操作系统: win8 数据库:SQL 2012 遇到问题: 以管理员身份登录SQL 2012,附件数据库提示如下错误: 解决办法: 以windows账号登录,附加,成功!
- C++ new delete操作符
//new delete操作符 #define _CRT_SECURE_NO_WARNINGS #include<iostream> using namespace std; /* 1.n ...
- latex之插入数学公式
1. \begin{eqnarray} Ly = \lambda y \end{eqnarray} 2. \begin{gather*} \begin{split} b\\ a=b \end{spli ...
- 我们把Mybatis的功能架构分为三层:
我们把Mybatis的功能架构分为三层: (1)API接口层:提供给外部使用的接口API,开发人员通过这些本地API来操纵数据库.接口层一接收到调用请求就会调用数据处理层来完成具体的数据处理. (2) ...
- COUNT() 函数返回匹配指定条件的行数。
SQL COUNT() 语法 SQL COUNT(column_name) 语法 COUNT(column_name) 函数返回指定列的值的数目(NULL 不计入): SELECT COUNT(col ...
- 在JAVA中利用public static final的组合方式对常量进行标识
在JAVA中利用public static final的组合方式对常量进行标识(固定格式). 对于在构造方法中利用final进行赋值的时候,此时在构造之前系统设置的默认值相对于构造方法失效. 常量(这 ...
- 配置sudo su
买了UCloud的机器默认给的是root权限,从安全考虑,这个得改改,那就添加一个普通用户吧.. 可是那群民工又有话说了,得有root权限才能启动那些服务进程,每次都要输入root密码才能切换到roo ...
- c# http请求,获取非200时的响应体
HttpWebResponse res = null; try { res = request.GetResponse() as HttpWebResponse; } catch (WebExcept ...