package config import ( "git.apinb.com/bsm-sdk/core/conf" "git.apinb.com/bsm-sdk/core/env" ) var ( Spec SrvConfig ) type SrvConfig struct { conf.Base `yaml:",inline"` Databases *conf.DBConf `yaml:"Databases"` } func New(srvKey string) { // 初始化通用配置 创建一个新的配置实例,用于服务配置 conf.New(srvKey, &Spec) // 配置校验 服务端口如果不合规,则随机分配端口 Spec.Port = conf.CheckPort(Spec.Port) // 初始化自定义环境变量 Spec.SecretKey = env.Runtime.JwtSecretKey // InitRootUser 配置说明: // 由于bool类型零值是false,如果配置文件中未设置该字段,默认值为false // 为了保持向后兼容和默认启用初始化,我们采用以下策略: // - 如果配置文件中显式设置为false,则禁用初始化 // - 如果配置文件中未设置或设置为true,则启用初始化 // 注意:InitRootUserData函数内部已有幂等性检查,重复执行是安全的 // 配置校验 服务名称地址及监听地址不能为空 conf.NotNil(Spec.Service, Spec.Cache) }