TangSengDaoDao / TangSengDaoDaoServer

高颜值 IM 即时通讯,聊天
https://tsdaodao.com
Apache License 2.0
2.41k stars 338 forks source link

我是go新手小白。请问我要如何在tsdd.yaml新增自己的配置并使用? #87

Closed xwg-github closed 7 months ago

xwg-github commented 7 months ago

现象

我是在main.go这样新增了 // 初始化context ctx := config.NewContext(cfg) ctx.Event = event.New(ctx) // 新增配置 ctx.SetValue(vp.GetString("other"), "other") 项目中使用是这样: u.ctx.Value("other") 觉得这样不太方便

日志

tangtaoit commented 7 months ago

看这里 https://github.com/TangSengDaoDao/TangSengDaoDaoServerLib/blob/main/config/config.go#L469

会转换成一个config对象.

xwg-github commented 7 months ago

嗯。这里我知道,config是TangSengDaoDaoServerLib库的,我想要新增一个其他字段

tangtaoit commented 7 months ago

嗯。这里我知道,config是TangSengDaoDaoServerLib库的,我想要新增一个其他字段

TangSengDaoDaoServerLib的config里加一个其他字段即可,参考其他的字段配置。

go.mod里可以通过 replace的方式引入本地TangSengDaoDaoServerLib这样改就方便

xwg-github commented 7 months ago

这样做就得引入到本地了。我想保留远程依赖的同时,新增自己的配置。

tangtaoit commented 7 months ago

这样做就得引入到本地了。我想保留远程依赖的同时,新增自己的配置。

新增配置必须改TangSengDaoDaoServerLib库 否则只能通过u.ctx.Value("other")方式获取

tangtaoit commented 7 months ago

还有一种办法就是,你业务层也创建一个配置对象,初始化的时候类似 TangSengDaoDaoServerLib一样 将vp里的配置映射到你业务层的配置对象上,这样其他地方调用你业务层的配置对象即可

xwg-github commented 7 months ago

好的,谢谢