refactor(conf): 移除冗余的 mapstructure 结构体标签

This commit is contained in:
unclesam committed 2026-07-25 15:13:42 +08:00
1 parent 7f68cecf21
commit ddf28f59cf
6 files changed
+37 -32

No files matched your search

+12 -7
View File
@@ -4,15 +4,16 @@ import (
"fmt"
"github.com/fsnotify/fsnotify"
"github.com/go-viper/mapstructure/v2"
"github.com/spf13/viper"
)
type Config struct {
Server ServerConfig `mapstructure:"server" yaml:"server"`
Database DatabaseConfig `mapstructure:"database" yaml:"database"`
Logger LoggerConfig `mapstructure:"logger" yaml:"logger"`
Jwt JwtConfig `mapstructure:"jwt" yaml:"jwt"`
Redis RedisConfig `mapstructure:"redis" yaml:"redis"`
Server ServerConfig `yaml:"server"`
Database DatabaseConfig `yaml:"database"`
Logger LoggerConfig `yaml:"logger"`
Jwt JwtConfig `yaml:"jwt"`
Redis RedisConfig `yaml:"redis"`
}
// LoadConfig 读取并解析配置文件
@@ -24,7 +25,9 @@ func LoadConfig(path string) (*Config, error) {
}
cfg := &Config{}
if err := v.Unmarshal(cfg); err != nil {
if err := v.Unmarshal(cfg, func(dc *mapstructure.DecoderConfig) {
dc.TagName = "yaml"
}); err != nil {
return nil, fmt.Errorf("解析配置文件失败: %w", err)
}
@@ -32,7 +35,9 @@ func LoadConfig(path string) (*Config, error) {
v.WatchConfig()
v.OnConfigChange(func(e fsnotify.Event) {
fmt.Printf("配置文件已更新: %s\n", e.Name)
if err := v.Unmarshal(cfg); err != nil {
if err := v.Unmarshal(cfg, func(dc *mapstructure.DecoderConfig) {
dc.TagName = "yaml"
}); err != nil {
fmt.Printf("重载配置文件失败: %s\n", err)
} else {
fmt.Println("🚀 配置热重载成功,新配置已即时生效!")