W3Cschool
恭喜您成為首批注冊(cè)用戶
獲得88經(jīng)驗(yàn)值獎(jiǎng)勵(lì)
我們推薦使用單例模式獲取配置管理對(duì)象。我們可以方便地通過(guò)?g.Cfg()
?獲取默認(rèn)的全局配置管理對(duì)象。同時(shí),我們也可以通過(guò)?gcfg.Instance
?包方法獲取配置管理對(duì)象單例。
我們來(lái)看一個(gè)示例,演示如何讀取全局配置的信息。需要注意的是,全局配置是與框架相關(guān)的,因此統(tǒng)一使用?g.Cfg()
?進(jìn)行獲取。以下是一個(gè)默認(rèn)的全局配置文件,包含了模板引擎的目錄配置以及?MySQL
?數(shù)據(jù)庫(kù)集群(兩臺(tái)?master
?)的配置。
示例配置:
viewpath: "/home/www/templates/"
database:
default:
- link: "mysql:root:12345678@tcp(127.0.0.1:3306)/test"
role: "master"
- link: "mysql:root:12345678@tcp(127.0.0.1:3306)/test"
role: "slave"
示例代碼:
package main
import (
"fmt"
"github.com/gogf/gf/v2/frame/g"
"github.com/gogf/gf/v2/os/gctx"
)
func main() {
var ctx = gctx.New()
fmt.Println(g.Cfg().Get(ctx, "viewpath"))
fmt.Println(g.Cfg().Get(ctx, "database.default.0.role"))
}
以上示例為讀取數(shù)據(jù)庫(kù)的第一個(gè)配置的?role
?信息。運(yùn)行后輸出:
/home/www/templates/
master
可以看到,我們可以通過(guò)?g.Cfg()
?方法獲取一個(gè)全局的配置管理器單例對(duì)象。配置文件內(nèi)容可以通過(guò)英文“?.
?”號(hào)進(jìn)行層級(jí)訪問(wèn)(數(shù)組默認(rèn)從?0
?開(kāi)始),?pattern
?參數(shù)?database.default.0.role
?表示讀取?database
?配置項(xiàng)中?default
?數(shù)據(jù)庫(kù)集群中的第?0
?項(xiàng)數(shù)據(jù)庫(kù)服務(wù)器的?role
?數(shù)據(jù)。
當(dāng)然也可以獨(dú)立使用?gcfg
?包,通過(guò)?Instance
?方法獲取單例對(duì)象。
package main
import (
"fmt"
"github.com/gogf/gf/v2/os/gcfg"
"github.com/gogf/gf/v2/os/gctx"
)
func main() {
var ctx = gctx.New()
fmt.Println(gcfg.Instance().Get(ctx, "viewpath"))
fmt.Println(gcfg.Instance().Get(ctx, "database.default.0.role"))
}
單例對(duì)象在創(chuàng)建時(shí)會(huì)按照文件后綴?toml/yaml/yml/json/ini/xml
?自動(dòng)檢索配置文件。默認(rèn)情況下會(huì)自動(dòng)檢索配置文件?config.toml/yaml/yml/json/ini/xml
?并緩存,配置文件在外部被修改時(shí)將會(huì)自動(dòng)刷新緩存。
為方便多文件場(chǎng)景下的配置文件調(diào)用,簡(jiǎn)便使用并提高開(kāi)發(fā)效率,單例對(duì)象在創(chuàng)建時(shí)將會(huì)自動(dòng)使用單例名稱進(jìn)行文件檢索。例如:?g.Cfg("redis")
?獲取到的單例對(duì)象將默認(rèn)會(huì)自動(dòng)檢索?redis.toml/yaml/yml/json/ini/xml
?,如果檢索成功那么將該文件加載到內(nèi)存緩存中,下一次將會(huì)直接從內(nèi)存中讀?。划?dāng)該文件不存在時(shí),則使用默認(rèn)的配置文件(?config.toml
?)。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號(hào)-3|閩公網(wǎng)安備35020302033924號(hào)
違法和不良信息舉報(bào)電話:173-0602-2364|舉報(bào)郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號(hào)
聯(lián)系方式:
更多建議: