49 lines
822 B
Go
49 lines
822 B
Go
package config
|
|
|
|
import (
|
|
"github.com/spf13/viper"
|
|
"time"
|
|
)
|
|
|
|
// server 服务器配置结构体(包内私有)
|
|
type server struct {
|
|
Port int
|
|
}
|
|
|
|
// jwt 配置结构体(包内私有)
|
|
type jwt struct {
|
|
Secret string
|
|
Expiry time.Duration
|
|
}
|
|
|
|
// 全局导出变量,指向私有结构体实例
|
|
var (
|
|
Server *server
|
|
JWT *jwt
|
|
)
|
|
|
|
// InitApplicationConfig 初始化配置,传入配置文件路径
|
|
func InitApplicationConfig(configPath string) (error, error) {
|
|
v := viper.New()
|
|
v.SetConfigFile(configPath)
|
|
v.SetConfigType("yaml")
|
|
|
|
if err := v.ReadInConfig(); err != nil {
|
|
return err, nil
|
|
}
|
|
|
|
var s server
|
|
if err := v.UnmarshalKey("server", &s); err != nil {
|
|
return err, nil
|
|
}
|
|
Server = &s
|
|
|
|
var j jwt
|
|
if err := v.UnmarshalKey("jwt", &j); err != nil {
|
|
return err, nil
|
|
}
|
|
JWT = &j
|
|
|
|
return nil, nil
|
|
}
|