使用google wire注入依賴

2021-10-07 20:54:42 字數 1765 閱讀 7174

google wire是golang的乙個依賴注入解決的工具,這個工具能夠自動生成類的依賴關係。

package main

import (

"fmt"

"time"

)// 採集函式

type f func()

// 採集物件

type worker struct

//採集模組

type beater struct

//newfunc 初始化乙個採集函式

func newfunc() f

}//newworker 根據具體的採集函式初始化乙個採集物件

func newworker(f f) worker

}//newbeater 根據採集物件初始化乙個採集模組

func newbeater(w worker) beater

}//start 方法啟動該模組下的採集事件

func (b beater) start()

//手動注入依賴方式

func main()

上面**展示了乙個資料採集的初始化和執行,初始化需要繁多的步驟.

先把我們的main函式簡化一下

func main()
supernewbeat這個函式我們在新建立的wire.go檔案中定義

}向wire.build中提供生成beater物件所有的初始化函式,它自動幫我們鏈結所有的必要步驟,執行wire命令生成wire_gen.go檔案

//安裝wire

//wire幫我們鏈結了所有的依賴當然初始化過程中可能因為,鏈結,解析配置等原因失敗.wire也可以檢測到

我們試圖讓newbeater多返回乙個error型別

func newbeater(w worker) (beater, error) , nil

}

再次執行wire

// code generated by wire. do not edit.

//go:generate wire

//+build !wireinject

package main

// injectors from wire.go:

func supernewbeat() (beater, error) , err

} return beater, nil

}

新的supernewbeat函式同樣適配了改動

angular 注入器配置 angular依賴注入

一 imports,declarations,providers介紹 imports中寫入的是當前模組匯入的其他模組,故imports應該匯入的是module declarations中寫入的是當前模組內包含的公共元件 指令資訊,故其中應該是宣告的是components prividers是匯入當前...

若依的字典使用

單個值的回顯 利用thymeleaf框架th text 方法 雙引號中寫 dict.getlabel 傳入所要的引數即可取出對應的值。col sm 2 control label 回顯資料字典單個的值 label form control static th text div 迴圈下拉列表回顯多個值...

golang使用vendor目錄來管理依賴包

隨著go 1.5 release版本的發布,vendor目錄被新增到除了gopath和goroot之外的依賴目錄查詢的解決方案。在go 1.6之前,你需要手動的設定環境變數go15vendorexperiment 1才可以使go找到vendor目錄,然而在go 1.6之後,這個功能已經不需要配置環境...