我是Golang的新手,正在开发一个小型库,需要在代码的某个时刻为不同的子包/方法调用获取数据库连接。我想知道如何管理它?
例如,如果我成功地拥有了一个Web服务器,它可以使用处理程序(handler)工作,那么我该如何在此函数内部获取这个连接?它可以与另一个进程一起使用、简单的方法调用或MVC模型吗?
我不想使用全局变量,因为对我来说这是一种糟糕的实践方式,除非这是一种非常特殊的方式(或者以某种方式很棘手)。
我阅读了许多不同网站上的写作,但仍然想听听不同意见和经验。
感谢您的时间!
例如,如果我成功地拥有了一个Web服务器,它可以使用处理程序(handler)工作,那么我该如何在此函数内部获取这个连接?它可以与另一个进程一起使用、简单的方法调用或MVC模型吗?
我不想使用全局变量,因为对我来说这是一种糟糕的实践方式,除非这是一种非常特殊的方式(或者以某种方式很棘手)。
我阅读了许多不同网站上的写作,但仍然想听听不同意见和经验。
感谢您的时间!
context.Context.Value()
最多只能算是一种疾病。我们应该避免使用它。(在我看来)context.Context
是实现取消层次结构的最佳方式(与sync.WaitGroup
结合使用以进行确认)。context.Context
的不可变性质是一件好事。值部分应该仅在请求范围内使用(我也从未将其用于此目的)。 - Kaveh Shahbazian