我编写了一个简单的go应用程序并将其格式化为多个包。
+main
+controllers
+handlers
+commons
+utils
我在主程序包中启动服务器并在启动时读取服务器特定的参数。
我不会使用这些参数,例如来自commons包的DB属性。我无法将主包导入到commons'因为commons是对控制器的依赖,处理程序是对main的依赖。所以这会导致循环导入。
我们应该如何处理这种情况?是否可以读取配置一次并在需要时在commons包内引用它?示例会有所帮助。
答案 0 :(得分:1)
您可以使用配置包,当您需要使用配置变量时,您可以将另一个结构发送到不同的包中。
main() {
config := config{}
user = NewUser(config)
...
}
我建议您查看配置revel包(https://github.com/revel/config)。它被用于狂欢框架https://github.com/revel/revel。