我們使用 "bee new beegoProjectName" 后會在 "beegoProjectName" 目錄下有一個自動生成的 “conf/app.conf” 文件, “conf/app.conf” 文件就是我們beego項目的默認配置文件,里面的默認內容有:
appname = beego_project // 就是我們beego項目編譯后的名字(默認和bee new beegoProjectName一樣) httpport = 8080 // beego項目啟動時默認監聽的端口 runmode = dev // runmode:這個參數后面做介紹
一、beego讀取配置文件里的配置項
1.1、獲取字符串類型的配置項目
httpport := beego.AppConfig.String("httpport") // 從配置文件里讀取httpport配置項獲取到的結果是string類型,AppConfig后面調用的什么方法獲取到的就是什么類型的數據。除了String()方法外其他方法都有兩個返回值(一個是讀取到的數據(如果轉換失敗時讀取到的數據就是類型的默認值),另一個是類型轉換的錯誤信息)
說明:
beego.AppConfig.String("httpport")可以獲取整形、浮點型的所有類型的配置項目,但是獲取到的結果是字符串類型。
1.2、獲取其他類型的參數數據
httpport, err := beego.AppConfig.Int("httpport") // 從配置文件里讀取httpport配置項並轉換為int類型,轉換成功就沒有報錯,轉換失敗就有報錯 httpport, err := beego.AppConfig.Float("httpport") // 從配置文件里讀取httpport配置項並轉換為float類型,轉換成功就沒有報錯,轉換失敗就有報錯
說明:
除了 “beego.AppConfig.String()” 外,所有的獲取參數類型的方法都有兩個返回值,一個是獲取到的結果,另一個是報錯信息(如果類型轉換失敗就會報錯)。
二、配置文件里的runmode使用
假設現在我的程序的配置文件是如下內容:
appname = beego_project httpport = 8080 runmode = dev copyrequestbody = true [dev] // 當runmode = dev時,表示獲取[dev]標簽下的username和passwd變量 username = "dev" passwd = "dev" [test] // 當runmode = test時,表示獲取[test]標簽下的username和passwd變量 username = "test" passwd = "test" [prod] // 當runmode = prod時,表示獲取[prod]標簽下的username和passwd變量 username = "prod" passwd = "prod"
當runmode = dev時,即程序獲取到的username和passwd的變量值是[dev]下的變量值,同理,如果runmode = prod時,程序獲取的是[prod]下的username和passwd
三、多個配置文件使用
默認情況下beego只有一個 “conf/app.conf” 配置文件,如果我們需要將數據庫的配置文件單獨弄一個配置文件該如何操作那?
3.1、第一步:在 “beegoProjectName/conf/” 新建 “db.conf” 文件
3.2、第二步:在 “beegoProjectName/conf/app.conf” 里最下邊添加如下內容引用 “db.conf”
include "db.conf" // db.conf文件需要在conf目錄下
四、其他參數說明
- RouterCaseSensitive:是否忽略大小寫匹配,默認是true(區分大小寫),具體參數:beego.BConfig.RouterCaseSensitive = true
- ServerName:beego服務端在請求的時候輸出server為beego,具體參數:beego.BConfig.ServerName = "beego"
- EnableGzip:是否開啟gzip支持,默認false不支持gzip,一旦開啟gzip,那么在模板輸出的內容會進行gzip或zlib壓縮,根據用戶的Accept-Encoding來判斷,具體參數:beego.BConfig.EnableGzip = false
- gzip允許用戶自定義壓縮級別、壓縮長度閾值和針對請求類型壓縮
1、壓縮級別:gzipCompressLevel = 9 - 取值1-9,如果不設置為1(最快壓縮)
2、壓縮長度閾值,gzipMinLength = 256,黨員是內容長度大於此閾值時才開啟壓縮,默認為20B(nginx默認長度)
3、請求類型,includedMethods = get;post,針對那些請求類型進行壓縮,默認只針對GET請求壓縮
- MaxMemory:文件上傳默認內存大小,默認值值是1<<26(64M),具體配置:beego.BConfig.MaxMemory = 1 << 26
- copyrequestbody:是夠支持獲取 Request Body 里的 JSON 或 XML 的數據,默認是false