代码
- 处理JWT配置
从全局配置中读取 JWT 配置,并解析有效期和缓冲时间dr, err := utils.ParseDuration(global.GVA_CONFIG.JWT.ExpiresTime) if err != nil { panic(err) } _, err = utils.ParseDuration(global.GVA_CONFIG.JWT.BufferTime) if err != nil { panic(err) }
使用了 utils.ParseDuration 函数来转换字符串时间格式。接受一个字符串类型的时间表示,并将其转换为可用的 time.Duration 类型。
- 初始化缓存
使用 local_cache.NewCache 创建一个新的缓存实例,缓存的默认过期时间由之前解析的 JWT 的过期时间(dr)决定。global.BlackCache = local_cache.NewCache( local_cache.SetDefaultExpire(dr), )
SetDefaultExpire 方法用于设置缓存项的默认过期时间。
- 读取 go.mod 文件获取模块名
go.mod 文件通常存放着 Go 项目的模块信息。在某些情况下,项目可能没有显式地在配置文件中指定模块名,这时可以从 go.mod 文件中读取模块名。
bufio.NewScanner 和 scanner.Scan() 用于逐行读取文件file, err := os.Open("go.mod") if err == nil && global.GVA_CONFIG.AutoCode.Module == "" { scanner := bufio.NewScanner(file) scanner.Scan() global.GVA_CONFIG.AutoCode.Module = strings.TrimPrefix(scanner.Text(), "module ") }
strings.TrimPrefix 用于处理读取到的文本,去掉 module 前缀