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


前言

最近 macos 上的 Edge 瀏覽器流出,趁着換瀏覽器把一些收藏的書簽整理一下.

緣由

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

Field injection is not recommended

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

依賴注入方式

  1. 構造函數注入 ,這也是比較推薦的方式
  2. Setter或者其他方法注入
  3. 字段注入

這三種其實都可以使用 @Autowired 注解,只是注解修飾的是構造函數,方法,還是字段.


字段注入的缺點

  1. 只需要使用 @Autowired 就很容易的進行依賴注入,為什么說這是個缺點呢,因為這種方便可能讓你放棄對依賴的思考,結果就是你的類的依賴可能是十幾個或者更多,這樣違反了SPR.
  2. 對單元測試不友好,你沒辦法直接初始化這個類,必須依賴 DI 容器.
  3. 類的依賴被隱藏起來,並不能像構造函數那樣在初始化時,就直觀的知道這個類有哪些依賴.
  4. 你的類跟DI容器強耦合在一起.


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM