// Package config 负责读程序的配置文件(application.properties)。 // // 大白话理解:程序启动时先看看配置文件里写了啥,没写就用默认值。 // 配置文件就在程序旁边,叫 application.properties,用记事本就能改。 package config import ( "github.com/magiconair/properties" ) // Config 程序配置: // - Port:网页服务用哪个端口(默认 8080) // - Dsn:数据库文件叫什么(默认 media-info.db,放在程序目录下) // - AutoOpen:启动后要不要自动打开浏览器 type Config struct { Port int Dsn string AutoOpen bool } // appConfig 当前生效的配置(程序运行期间一直不变)。 var appConfig Config // GetAppConfig 返回当前生效的配置。 func GetAppConfig() Config { return appConfig } // LoadAppConfig 从 application.properties 读配置;文件不存在就用默认值。 func LoadAppConfig() { // 先给一套默认值 appConfig = Config{Port: 8080, Dsn: "media-info.db", AutoOpen: true} p, err := properties.LoadFile("application.properties", properties.UTF8) if err != nil { return // 没有配置文件,就用默认值 } // 配置文件里写了就覆盖默认值 if port := p.GetInt("server.port", 0); port > 0 { appConfig.Port = port } if v, ok := p.Get("database.dsn"); ok && v != "" { appConfig.Dsn = v } appConfig.AutoOpen = p.GetBool("server.autoOpen", true) }