iT邦幫忙

0

golang 語言在使用 Gin 框架的情形下的依賴注入

如主題
目前正在研究這個注入框架
https://godoc.org/github.com/facebookgo/inject

我這邊注入方式是直接注入 router(自定義)
https://ithelp.ithome.com.tw/upload/images/20200714/20128028sljCbQYjCK.png

目前遇到注入的 controller 裡面的 User 一直都是屬於單例模試
https://ithelp.ithome.com.tw/upload/images/20200714/20128028XiMZdjZMTy.png

每次請求USER的Mobile都會互相影響(a不停的增加)
https://ithelp.ithome.com.tw/upload/images/20200714/20128028BuRPpA6Kqv.png

有辦法讓他能每次請求都建立不同的 User struct 嗎?
還是大家使用 golang 的時候都不流行依賴注入的?

看更多先前的討論...收起先前的討論...
froce iT邦大師 1 級 ‧ 2020-07-14 21:17:59 檢舉
https://github.com/Bingjian-Zhu/gin-inject
研究一下別人怎麼用吧。
我也還在看。
goinc1937 iT邦新手 5 級 ‧ 2020-07-15 10:30:06 檢舉
這個一樣會是單例模式 寫法跟我一樣
fnsne iT邦新手 5 級 ‧ 2020-08-12 12:44:35 檢舉
稍微看了下inject的package,感覺上好像是AOP的注入框架。

不過,通常來說,資料struct 不會使用注入吧?

假如是要有不同實作內容的資料struct(如使用不同的資料庫),那注入的東西,應該是controller而不是資料struct才對。
至於如何保持業務邏輯不變,可以利用decorator之類的方式。
西撒 iT邦新手 5 級 ‧ 2020-11-29 01:50:19 檢舉
跟依賴注入沒有關係吧
感覺你不熟指標的意義

如果要符合你要的需求
你controller 欄位
要放的應該是 NewUserFunc 或 UserFactory 或 UserRepository
看喜歡函數 還是 物件
要新建 還是 重建 User

你是抄網路的範例?
似乎不理解自己在寫什麼

跟注入框架完全沒關係
純粹沒有程式基本觀念

看到 this 就覺得又是其他語言, 完全沒看 go 的基本介紹
就來亂寫, 之前什麼學語言阿?
用了 golangci-lint 看你的程式碼會一堆警告

尚未有邦友回答

立即登入回答