* app.conf的说明 app.conf里面定义的是上面这些默认值的可覆盖值,app.conf是ini解析 ~~~ [section] key = value beego.AppConfig.Bool("key") Set(key, val string) error String(key string) string Strings(key string) []string Int(key string) (int, error) Int64(key string) (int64, error) Bool(key string) (bool, error) Float(key string) (float64, error) ~~~ * beego的自定义参数 如下所示的配置文件 ~~~ ;comment one #comment two appname = beeapi httpport = 8080 mysqlport = 3600 PI = 3.1415976 runmode = "dev" autorender = false copyrequestbody = true [demo] key1="asta" key2 = "xie" CaseInsensitive = true peers = one;two;three ~~~ * 自定义配置的读取 ~~~ beego.AppConfig.Bool("autorender") beego.AppConfig.Float("PI") beego.AppConfig.Int("mysqlport") beego.AppConfig.String("appname") beego.AppConfig.String("demo::key1") beego.AppConfig.Bool("demo::CaseInsensitive") beego.AppConfig.Strings("demo::peers") [one two three] ~~~ 配置文件解析 这是一个用来解析文件的库,它的设计思路来自于 database/sql,目前支持解析的文件格式有 ini、json、xml、yaml,可以通过如下方式进行安装: go get github.com/astaxie/beego/config 如果你使用xml 或者 yaml 驱动就需要手工安装引入包 go get -u github.com/astaxie/beego/config/xml 而且需要在使用的地方引入包 import _ "github.com/astaxie/beego/config/xml" 如何使用 首先初始化一个解析器对象 ~~~ iniconf, err := NewConfig("ini", "testini.conf") if err != nil { t.Fatal(err) } ~~~ 然后通过对象获取数据 iniconf.String("appname") 解析器对象支持的函数有如下: ~~~ Set(key, val string) error String(key string) string Int(key string) (int, error) Int64(key string) (int64, error) Bool(key string) (bool, error) Float(key string) (float64, error) DIY(key string) (interface{}, error) ~~~ ini 配置文件支持 section 操作,key通过 section::key 的方式获取 例如下面这样的配置文件 ~~~ [demo] key1 = "asta" key2 = "xie" ~~~ 那么可以通过 iniconf.String("demo::key2") 获取值. 如何获取环境变量 config 模块支持环境变量配置,对应配置项 Key 格式为 ${环境变量名} ,则 Value = os.Getenv(‘环境变量名’)。 同时可配置默认值,当环境变量无此配置或者环境变量值为空时,则优先使用默认值。包含默认值的 Key 格式为 ${GOPATH||/home/workspace/go/} ,使用||分割环境变量和默认值。 注意 获取环境变量值仅仅是在配置文件解析时处理,而不会在调用函数获取配置项时实时处理。