微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

golang beego 自定义配置

app.conf配置项读取

app.conf文件

appname = "hellow"
httpport = 8080
runmode = dev

[dev]
httpport = 8080
[prod]
httpport = 8088
[test]
httpport = 8888

beego.AppConfig.Bool("key")
beego.AppConfig.String("key")
beego.AppConfig.Int("key")
beego.AppConfig.Int64("key")
beego.AppConfig.Float("key")

appname := beego.AppConfig.String("app name")
port,err := beego.AppConfig.Int("httpport")
...

section 操作

认情况下配置app.conf中会有配置项runmode,runmode对应的配置就是section,示例中的runmode为dev则读取的httpport为8080

testPort,_ := beego.AppConfig.Int(“test::httpport”)

section::key的读取

通过String(“section::key”)可以读取指定section的key所对应的值,上例中想读取8080,可以这样操作:String(“dev::httpport”)

json格式的配置读取

先导入"github.com/astaxie/beego/config"

创建test.json

{
	"dev":{
		"appname" : "hellow","runmode" : "dev","httpport" : 81		
	}
}

以下代码

conf,err := config.NewConfig("json","conf/test.json")
     if err == nil {
          val := conf.String("dev::app name”)  //初始化配置
          fmt.Println("val: ",val)
          port,_ := conf.Int("dev::httpport")
          fmt.Println("val: ",port)
     } else {
          fmt.Println(err)
     }

分组配置

在conf下的app.conf 加入include “../custom/app.conf”

注意:相同的配置项后面的会覆盖前面的。

config模块详解

config模块初始化

先导入”github.com/astaxie/beego/config”包,

接下来初始化config(解析器对象)

iniconf,err := config.NewConfig("ini","testini.conf")

然后通过对象获取数据

iniconf.String("app name")

解析器对象支持函数有如下:

Set(key,val string) error   // 使用ini配置文件支持
section::key. String(key string) string    
 // 使用ini或json配置文件支持section::key; Int,Int64,Bool,Float,DIY同样支持.
Strings(key string) []string // 获取字符串切片 
Int(key string) (int,error)
Int64(key string) (int64,error) 
Bool(key string) (bool,error) 
Float(key string) (float64,error) 
DefaultString(key string,defaultval string) string      // 使用ini或json配置文件支持section::key; Int,DIY同样支持. 
DefaultStrings(key string,defaultval []string) []string // 获取字符串切片 
DefaultInt(key string,defaultval int) int 
DefaultInt64(key string,defaultval int64) int64 
DefaultBool(key string,defaultval bool) bool 
DefaultFloat(key string,defaultval float64) float64 
DIY(key string) (interface{},error) 
GetSection(section string) (map[string]string,error) 
SaveConfigFile(filename string) error

ini配置文件支持section操作,key通过section:key的方式获取

Default类型的API,key配置项不存在,则读取default value,存在的话则读取配置项对应的值

 

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐