為什麼不推薦使用字段注入

2022-03-04 16:47:50 字數 554 閱讀 3096

最近 macos 上的 edge 瀏覽器流出,趁著換瀏覽器把一些收藏的書籤整理一下.

我比較關注 idea 的提示,尤其是右側的出現黃線的警告,當我使用 @autowired 進行依賴注入時,idea 會出現下面的警告:

field injection is not recommended

後來查了一下原因,正好整理出來,首先看一下有哪些依賴注入的方式

建構函式注入 ,這也是比較推薦的方式

setter或者其他方法注入

字段注入

這三種其實都可以使用 @autowired 註解,只是註解修飾的是建構函式,方法,還是欄位.

只需要使用 @autowired 就很容易的進行依賴注入,為什麼說這是個缺點呢,因為這種方便可能讓你放棄對依賴的思考,結果就是你的類的依賴可能是十幾個或者更多,這樣違反了spr.

對單元測試不友好,你沒辦法直接初始化這個類,必須依賴 di 容器.

類的依賴被隱藏起來,並不能像建構函式那樣在初始化時,就直觀的知道這個類有哪些依賴.

你的類跟di容器強耦合在一起.

為什麼不推薦使用外來鍵?

外來鍵的優點 一 資料一致性 由資料庫自身保證資料一致性 完整性會更可靠,程式很難100 保證資料的一致性 完整性 二 er圖可靠性 有主外來鍵的資料庫設計可以增加er圖的可讀性 外來鍵的缺點 一 級聯問題 阿里巴巴的開發手冊中,就曾指出強制要求不允許使用外來鍵,一切外來鍵概念必須在應用層解決。因為...

mysql為什麼不推薦使用uuid作為主鍵

前言 在mysql中設計表的時候,mysql官方推薦不要使用uuid或者不連續不重複的雪花id long形且唯一 而是推薦連續自增的主鍵id,官方的推薦是auto increment,那麼為什麼不建議採用uuid,使用uuid究竟有什麼壞處?本篇部落格我們就來分析這個問題,一下內部的原因。1.1 要...

為什麼我不推薦敏捷開發?

當專案成員越多,我越不推薦敏捷開發,原因在於 當連自己要做什麼事 為什麼這樣做 這樣做為了解決什麼問題 都搞不清楚前,就跳下去玩敏捷開發,那和比通靈還慘,通靈起碼還有個目標物在前面,搞不清楚狀況的人只能陪他跳世界迷霧開地圖了 敏捷開發 mba智庫百科 最下方有段 對敏捷開發的誤解 可順便參考 敏捷軟...