57 lines
1.1 KiB
Go
57 lines
1.1 KiB
Go
package config
|
|
|
|
import (
|
|
"base-framework/pkg/types"
|
|
"github.com/spf13/viper"
|
|
)
|
|
|
|
// 全局导出变量,指向 types 包中的配置实例
|
|
var (
|
|
Server *types.Server
|
|
JWT *types.Jwt
|
|
Log *types.Log
|
|
Snowflake *types.Snowflake
|
|
)
|
|
|
|
// InitApplicationConfig 初始化配置,传入配置文件路径
|
|
func InitApplicationConfig(configPath string) (err error, err2 error) {
|
|
v := viper.New()
|
|
v.SetConfigFile(configPath)
|
|
v.SetConfigType("yaml")
|
|
|
|
if err := v.ReadInConfig(); err != nil {
|
|
return err, err2
|
|
}
|
|
|
|
// server 配置
|
|
var server types.Server
|
|
if err := v.UnmarshalKey("server", &server); err != nil {
|
|
return err, err2
|
|
}
|
|
|
|
// jwt 配置
|
|
var jwt types.Jwt
|
|
if err := v.UnmarshalKey("jwt", &jwt); err != nil {
|
|
return err, err2
|
|
}
|
|
|
|
// 初始化日志模块
|
|
var log types.Log
|
|
if err := v.UnmarshalKey("log", &log); err != nil {
|
|
return err, err2
|
|
}
|
|
|
|
// 初始化日志模块
|
|
var snowflake types.Snowflake
|
|
if err := v.UnmarshalKey("snowflake", &snowflake); err != nil {
|
|
return err, err2
|
|
}
|
|
|
|
Server = &server
|
|
JWT = &jwt
|
|
Log = &log
|
|
Snowflake = &snowflake
|
|
|
|
return nil, err2
|
|
}
|