go學習筆記——wire依賴注入

wire是google開源的使用依賴注入來自動連接組件的代碼生成工具

安裝

go install github.com/google/wire/cmd/wire@latest

官方使用文檔:

https://github.com/google/wire/blob/main/docs/guide.md

文檔參考:

手把手,帶你從零封裝Gin框架(十二):使用 Wire 依賴注入重構

golang中的依賴注入之wire

參考項目:

https://github.com/jassue/gin-wire

如果遇到下面報錯

wire: /xxx/cmd/server/wire.go:17:1: inject wireApp: unused provider set "ProviderSet"
wire: xx/cmd/server: generate failed
wire: at least one generate failure

這是因爲設置了依賴注入的方法沒能找到調用者,在gin項目中,調用的順序一般是data層->service層->handler層->router層->httpserver->app

所以需要把調用的ProviderSet在wire.go文件中完整的寫出來,不能出現中間中斷的情況,wire_gen才能正常的生成

比如寫了data,service,router,httpserver和app,但是漏了handler,這樣就會報上面的錯誤

如果只寫了router,httpserver和app,這樣是可以正常生成的

可以參考:https://github.com/jassue/gin-wire/blob/main/cmd/app/wire_gen.go 中的調用層次

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章