今天在看martini的源码,其中有这个函数:
```go
func (m *Martini) RunOnAddr(addr string) {
logger := m.Injector.Get(reflect.TypeOf(m.logger)).Interface().(*log.Logger)
logger.Printf("listening on %s (%s)\n", addr, Env)
logger.Fatalln(http.ListenAndServe(addr, m))
}
```
里面获取logger的方式为什么不用m.logger,非要采用Injector方式,是性能的原因吗?请大家指点
这行其实已经是硬编码包含m.logger了,m.Injector.Get(reflect.TypeOf(m.logger)).Interface().(*log.Logger)
#2
更多评论