一般初始化数据库会在main的运行的时候第一步进行,常用的方式
dbhost := beego.AppConfig.String("dbhost") dbport := beego.AppConfig.String("dbport") dbuser := beego.AppConfig.String("dbuser") dbpassword := beego.AppConfig.String("dbpassword") db := beego.AppConfig.String("db") //注册mysql Driver orm.RegisterDriver("mysql", orm.DRMySQL) //构造conn连接 //用户名:密码@tcp(url地址)/数据库 conn := dbuser + ":" + dbpassword + "@tcp(" + dbhost + ":" + dbport + ")/" + db + "?charset=utf8" //注册数据库连接 orm.RegisterDataBase("default", "mysql", conn) fmt.Printf("数据库连接成功!%s\n", conn)
使用String就可以得到对应的参数值,如何实现的
第一步:
AppConfig本质是beegoAppConfig的指针。而这个指针的观察这使用了Configer接口,故而需要实现该接口下的所有方法。这里面就包括了String
第二步
String方法要求传入一个key,返回一个string的value。很显然在这里其实静态文件beego已经加载完成
第三步
如果不想现在配置在临时的时候可以使用Set方法,但是注意他是没有string的返回值的
第四步
重新回到第二步,需要去思考,配置文件是如何加载进来的。这里需要知道beego程序运行是从import->const->var->init->main。故而
程序加载beego->Configer->init;在init里面实例化newBConfig,newBConfig是对config的指针,这里仅仅是做一些默认的初始化。正式使用的配置文件是
appConfigPath = filepath.Join(WorkPath, "conf", filename)
WorkPath是工程目录通过os.Getwd()获取到的,filename这是程序中默认写了"app.conf",到目前为止就找到了配置文件
第五步
parseConfig->NewConfig->parseFile,将整个文件加载进来->parseData,数据进来加锁,退出前去锁。然后做一些win的文件头识别。
第六步
最后对对一行行数据进行加载和判断。判断:1.是否到该行结束2.是否到文件结束;还有更多细节,自行阅读源码
本文来自博客园,作者:topass123,转载请注明原文链接:https://www.cnblogs.com/topass123/p/17007687.html