golang 数据库配置管理

2018-01-07 10:56:38 +08:00
 kkfnui

现在用 golang 写了些的数据处理程序,往往都是读一个数据库,然后写到另外一个数据库。 中间可能访问下 redis。

这样在 main 函数的开始和结束的时候,都要处理一遍这些事情。 另外,使用的时候还需要通过参数传递,比较麻烦。

为了解决这些重复的工作,就将数据库、redis 相关的设置成全局变量。

mysql、redis 使用一致的接口,通过配置初始化。比如:

def initMysql(name string) 
def getMysql(name string) *sql.conn
def unInitMysql(name string) 

// 使用
initMysql("src")
initMysql("dest")
// do foo
unInitMysql("dest")
unInitMysql("src")

但是,这样存在一个问题。程序内部使用 mysql 和 redis 可能会调整。如果可以像 spring 一样自动注入的方式(之前用过一段时间的 spring,说到底是被 spring 灌的) 就更方便了。

向大家请教两个问题:

  1. 现在大家的项目中是怎么做的,有没有更简便的方法?
  2. golang 现在是否有类似 spring 的框架呢?
1364 次点击
所在节点    Go 编程语言
4 条回复
kkfnui
2018-01-07 11:15:11 +08:00
可以用懒加载的方式,解决显式初始化的问题
dcalsky
2018-01-07 18:11:48 +08:00
单例模式可解。
orvice
2018-01-08 01:01:22 +08:00
def 是什么鬼
kkfnui
2018-01-08 10:18:44 +08:00
@orvice 尴尬,把 python 的关键字当成 func 了

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/420763

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX