go revel 初探二

在自己的revel项目中增加新的配置文件

conf/my.conf,内容如下:

# 网站信息配置
[website]
website.version=1.0
website.sitedomain=

网上查了半天,竟然没有找到revel的配置怎么读取,开始直接使用"github.com/robfig/config"库(当然revel本身也使用这个库),这是我的数据库配置

    //判断是否是系统的分隔符
    separator := "/"
    if os.IsPathSeparator('\\') {
        separator = "\\"
    } else {
        separator = "/"
    }

    config_file := (revel.BasePath + "/conf/database.conf")
    config_file = strings.Replace(config_file, "/", separator, -1)
    c, _ := config.ReadDefault(config_file)

    db_driver, _ := c.String("database", "db.driver")
    db_dbname, _ := c.String("database", "db.dbname")
    db_user, _ := c.String("database", "db.user")
    db_password, _ := c.String("database", "db.password")
    db_host, _ := c.String("database", "db.host")
    //db_prefix, _ := c.String("database", "db.prefix")
    fmt.Println(db_driver)    

可以使用,后来想,revel本身应该实现了读取配置文件的功能才对,通过对revel配置的查看找到了revel.LoadConfig()方法,尝试使用之

    conf, err := revel.LoadConfig("my.conf")
    if err != nil {
        fmt.Println(err)
    }
    fmt.Println(conf.Raw().String("website", "website.version")) //成功打印出结果,也可以使用RawString()替换String()

本来以为可以直接像使用revel.Config.String("website.version")这样获取,结果不可以,先这样,后面继续学习看看