wire
约 1 分钟阅读
标签:IoC
项目进入维护状态
- google/wireGitHubgoogle/wire项目进入维护状态 · google/wire · Compile-time DI · 编译时生成 DI 逻辑 · 逻辑清晰明确 · 不是 IoC 容器 · 透明 - IoC 容器是一个不透明的盒子 · 替代 · uber fx, dig笔记:wire
- Compile-time DI
- 编译时生成 DI 逻辑
- 逻辑清晰明确
- 不是 IoC 容器
- 透明 - IoC 容器是一个不透明的盒子
- 替代
- uber fx笔记fxuber-go/fx · 基于反射的动态 IoC 容器 · 内部为 uber-go/dig - DI · fx.Supply 不能直接提供 interface · Go 类型检测不到, 使用 constructor 返回 · fx.In 和 fx.Out 要求字段 exported打开:/notes/languages/go/lib/fx, dig
go install github.com/google/wire/cmd/wire@latestpackage main
func main() {
e,err := InitializeEvent()
if err != nil {
fmt.Printf("failed to create event: %s\n", err)
os.Exit(2)
}
e.Start()
}//+build wireinject
func InitializeEvent() Event {
wire.Build(NewEvent, NewGreeter, NewMessage)
return Event{}
}// 生成的内容
func InitializeEvent() Event {
message := NewMessage()
greeter := NewGreeter(message)
event := NewEvent(greeter)
return event
}关联信息
反向链接、本文链接的其他页面和外部资料。
反向链接
- fx笔记 · wire
uber-go/fx · 基于反射的动态 IoC 容器 · 内部为 uber-go/dig - DI · fx.Supply 不能直接提供 interface · Go 类型检测不到, 使用 constructor 返回 · fx.In 和 fx.Out 要求字段 exported
- Go Awesome笔记 · wire
https://go-proverbs.github.io/ · mux · chi - ⭐️ · gin, mux · ORM · gorm - ⭐️ · 基于反射 · 目前 Go 里实现最为优美的 ORM · XORM 被 gogs 和 gitea 使用,是 gogs 原作者开发 - 但认为比不上 gorm
站内链接
- fx笔记 · fx
uber-go/fx · 基于反射的动态 IoC 容器 · 内部为 uber-go/dig - DI · fx.Supply 不能直接提供 interface · Go 类型检测不到, 使用 constructor 返回 · fx.In 和 fx.Out 要求字段 exported
参考资料
GitHub1 条
- google/wiregithub.com/google/wire