欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Golang配置管理庫?Viper的教程詳解

 更新時間:2022年05月31日 10:53:48   作者:是記憶啦  
這篇文章主要介紹了Golang?配置管理庫?Viper,使用?viper?能夠很好的去管理你的配置文件信息,比如數(shù)據(jù)庫的賬號密碼,服務(wù)器監(jiān)聽的端口,你可以通過更改配置文件去更改這些內(nèi)容,而不用定位到那一段代碼上去,提高了開發(fā)效率,需要的朋友可以參考下

一、Viper 是什么?

Viper 是應(yīng)用程序的完整配置的管理工具,用于在應(yīng)用程序中工作,可以處理所有類型的配置需求和格式。

二、安裝 Viper

go get github.com/spf13/viper

三、Viper 有什么作用

  • 設(shè)置默認值
  • 讀取 JSON、TOML、YAML(YML)、HCL、envfile 和 Java properties 屬性配置文件
  • 實時查看和重讀配置文件(可選)
  • 從環(huán)境變量中讀取
  • 從遠程配置系統(tǒng)(etcd 或 Consor)讀取數(shù)據(jù),并觀察變化
  • 從命令行標志讀取
  • 從緩沖區(qū)讀取
  • 設(shè)置顯式值

四、Viper demo 可供參考

func main() {
	ReadIni()
	ReadYml()
}
func ReadIni() {
	v := viper.New()
    v.AddConfigPath("./conf")  // 路徑(當前路徑下的conf文件夾)
	v.SetConfigName("configA") // 名稱
	v.SetConfigType("ini")     // 類型
	err := v.ReadInConfig() // 讀配置
	if err != nil {
		if _, ok := err.(viper.ConfigFileNotFoundError); ok {
			fmt.Println("找不到配置文件..")
		} else {
			fmt.Println("配置文件出錯..")
		}
	}
	// [section] 如果沒寫就是 default,也就是下面的 key 變成 default.username
	s1 := v.GetString("db.username")
	s2 := v.GetInt("web.port")
	fmt.Printf("ini 文件的數(shù)據(jù)庫名字:%v, 網(wǎng)絡(luò)端口號:%v \n", s1, s2)
}
func ReadYml() {
	v := viper.New()
	v.AddConfigPath("./conf")
	v.SetConfigName("configB")
	v.SetConfigType("yml")
	err := v.ReadInConfig()
	if err != nil {
		if _, ok := err.(viper.ConfigFileNotFoundError); ok {
			fmt.Println("找不到配置文件..")
		} else {
			fmt.Println("配置文件出錯..")
		}
	}
	s1 := v.GetString("db.username")
	s2 := v.GetInt("web.port")
	s3 := v.GetString("app.time")
	fmt.Printf("yml 文件的數(shù)據(jù)庫名字:%v, 網(wǎng)絡(luò)端口號:%v, apptime:%v \n", s1, s2, s3)
}

結(jié)果:

ini 文件的數(shù)據(jù)庫名字:admin, 網(wǎng)絡(luò)端口號:8080
yml 文件的數(shù)據(jù)庫名字:root, 網(wǎng)絡(luò)端口號:8088, apptime:05/30

配置文件內(nèi)容

  • configA.ini
;數(shù)據(jù)庫配置
[db]
username=admin
password=123
driver=mysql
port=3306
;網(wǎng)絡(luò)配置
[web]
port=8080
  • configB.yml
# 數(shù)據(jù)庫配置
db: 
    username: root
    password: 123
    driver: mysql
    port: 3306
# 網(wǎng)絡(luò)配置
web:
    port: 8088
# APP配置
app: {id: 10,time: 05/30}

注意

以上例子在根目錄下面創(chuàng)建了 conf 文件夾,然后創(chuàng)建了 configA.ini 和 configB.yml 文件

五、總結(jié)

使用 viper 能夠很好的去管理你的配置文件信息,比如數(shù)據(jù)庫的賬號密碼,服務(wù)器監(jiān)聽的端口,你可以通過更改配置文件去更改這些內(nèi)容,而不用定位到那一段代碼上去,提高了開發(fā)效率。 需要注意的是,你還需要補充配置文件的格式相關(guān)的知識,才能更好的去使用它。

到此這篇關(guān)于Golang 配置管理庫 Viper的文章就介紹到這了,更多相關(guān)go 配置管理庫 Viper內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • go語言實現(xiàn)sqrt的方法

    go語言實現(xiàn)sqrt的方法

    這篇文章主要介紹了go語言實現(xiàn)sqrt的方法,實例分析了Go語言實現(xiàn)計算平方根的技巧,需要的朋友可以參考下
    2015-03-03
  • C語言的10大基礎(chǔ)算法

    C語言的10大基礎(chǔ)算法

    算法是一個程序和軟件的靈魂,作為一名優(yōu)秀的程序員,只有對一些基礎(chǔ)的算法有著全面的掌握,才會在設(shè)計程序和編寫代碼的過程中顯得得心應(yīng)手。這篇文章主要介紹了C語言的10大基礎(chǔ)算法,需要的朋友可以參考下
    2019-09-09
  • go reflect要不要傳指針原理詳解

    go reflect要不要傳指針原理詳解

    這篇文章主要為大家介紹了go reflect要不要傳指針原理詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2023-01-01
  • Go中defer使用場景及注意事項

    Go中defer使用場景及注意事項

    defer 會在當前函數(shù)返回前執(zhí)行傳入的函數(shù),它會經(jīng)常被用于關(guān)閉文件描述符、關(guān)閉數(shù)據(jù)庫連接以及解鎖資源。這篇文章主要介紹了Go中defer使用注意事項,需要的朋友可以參考下
    2021-12-12
  • Go1.18新特性對泛型支持詳解

    Go1.18新特性對泛型支持詳解

    這篇文章主要為大家介紹了Go1.18新特性對泛型支持詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪
    2022-06-06
  • 基于Go語言實現(xiàn)應(yīng)用IP防火墻

    基于Go語言實現(xiàn)應(yīng)用IP防火墻

    在公司里面經(jīng)常會聽到某應(yīng)用有安全漏洞問題,沒有做安全加固,IP防火墻就是一個典型的安全加固解決方案,下面我們就來學習一下如何使用go語言實現(xiàn)IP防火墻吧
    2023-11-11
  • Go語言入門13之runtime包案例講解

    Go語言入門13之runtime包案例講解

    這篇文章主要介紹了Go語言入門runtime包相關(guān)知識,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2023-05-05
  • Go?數(shù)據(jù)結(jié)構(gòu)之二叉樹詳情

    Go?數(shù)據(jù)結(jié)構(gòu)之二叉樹詳情

    這篇文章主要介紹了?Go?數(shù)據(jù)結(jié)構(gòu)之二叉樹詳情,二叉樹是一種數(shù)據(jù)結(jié)構(gòu),在每個節(jié)點下面最多存在兩個其他節(jié)點。即一個節(jié)點要么連接至一個、兩個節(jié)點或不連接其他節(jié)點,下文基于GO語言展開二叉樹結(jié)構(gòu)詳情,需要的朋友可以參考一下
    2022-05-05
  • go語言go?func(){select{}}()的用法

    go語言go?func(){select{}}()的用法

    本文主要介紹了go語言go?func(){select{}}()的用法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2024-02-02
  • golang常用加密解密算法總結(jié)(AES、DES、RSA、Sha1、MD5)

    golang常用加密解密算法總結(jié)(AES、DES、RSA、Sha1、MD5)

    在項目開發(fā)過程中,當操作一些用戶的隱私信息,本文主要主要介紹了golang常用加密解密算法總結(jié)(AES、DES、RSA、Sha1MD5),文中通過示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2022-04-04

最新評論