如何解决Golang http.HandlerFunc闭包初始化
Matt Ryer在他的演讲How I Write HTTP Web Services中提到了一些有趣的事情。他建议编写http处理程序,以返回如下所示的handlerfunc:
func (s *server) handleSomething() http.HandlerFunc {
thing := prepareThing()
return func(w http.ResponseWriter,r *http.Request) {
// use thing
}
}
这允许您传递参数,或通过闭包在处理程序中使用服务器db连接,而无需使用全局变量。
我的问题是,prepareThing()
是在每个请求之后还是在应用程序启动时正在执行。他提到在prepareThing()
闭包中加载模板或进行其他昂贵的设置。这是否意味着关闭仅在应用启动时执行?为什么会这样?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。