37 lines
1.1 KiB
Go
37 lines
1.1 KiB
Go
|
|
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)
|
|||
|
|
}
|