package conf import ( "log" "os" "gopkg.in/yaml.v3" ) // DefaultConfig 结构体用于存储数据库配置信息 var DefaultConfig *Config // Config 结构体用于存储配置信息 type Config struct { Server ServerConfig `yaml:"server"` DatabaseConfigs DBConfig `yaml:"databaseConfigs"` } // ServerConfig 结构体用于存储服务器配置信息 type ServerConfig struct { RunMode string `yaml:"runMode"` HttpPort int `yaml:"httpPort"` AvailableAddrListNum int `yaml:"availableAddrListNum"` } // InitConfig 设置全局配置变量 func InitConfig(configFilePath string) { config, err := readConfig(configFilePath) if err != nil { log.Println("open config file error, use default config", err) setDefaultConfig() } DefaultConfig = &config } // setDefaultConfig 设置默认配置 func setDefaultConfig() { DefaultConfig = &Config{ Server: ServerConfig{ RunMode: "debug", HttpPort: 8090, AvailableAddrListNum: 20, }, DatabaseConfigs: DBConfig{ IdentificationName: "MYSQL_CON", DB: "sql_test", User: "root", Password: "12345678", Host: "localhost", Port: "3306", TimeZone: "Local", Type: "mysql", }, } } // readConfig 函数用于读取 YAML 配置文件 func readConfig(filePath string) (Config, error) { var config Config file, err := os.Open(filePath) if err != nil { return config, err } defer file.Close() decoder := yaml.NewDecoder(file) err = decoder.Decode(&config) if err != nil { return config, err } return config, nil }