多多色-多人伦交性欧美在线观看-多人伦精品一区二区三区视频-多色视频-免费黄色视屏网站-免费黄色在线

中國最全IT社區平臺 聯系我們 | 收藏本站
阿里云優惠2

wkspring教程

Spring 依賴注入

閱讀 (2261)

依賴注入

每個基于應用程序的 java 都有幾個對象,這些對象一起工作來呈現出終端用戶所看到的工作的應用程序。當編寫一個復雜的 Java 應用程序時,應用程序類應該盡可能獨立于其他 Java 類來增加這些類重用的可能性,并且在做單元測試時,測試獨立于其他類的獨立性。依賴注入(或有時稱為布線)有助于把這些類粘合在一起,同時保持他們獨立。

假設你有一個包含文本編輯器組件的應用程序,并且你想要提供拼寫檢查。標準代碼看起來是這樣的:

public class TextEditor {
   private SpellChecker spellChecker;  
   public TextEditor() {
      spellChecker = new SpellChecker();
   }
}

在這里我們所做的就是創建一個 TextEditor 和 SpellChecker 之間的依賴關系。在控制反轉的場景中,我們反而會做這樣的事情:

public class TextEditor {
   private SpellChecker spellChecker;
   public TextEditor() {
      spellChecker = new SpellChecker();
   }
}

在這里,TextEditor 不應該擔心 SpellChecker 的實現。SpellChecker 將會獨立實現,并且在 TextEditor 實例化的時候將提供給 TextEditor,整個過程是由 Spring 框架的控制。

在這里,我們已經從 TextEditor 中刪除了全面控制,并且把它保存到其他地方(即 XML 配置文件),且依賴關系(即 SpellChecker 類)通過類構造函數被注入到 TextEditor 類中。因此,控制流通過依賴注入(DI)已經“反轉”,因為你已經有效地委托依賴關系到一些外部系統。

依賴注入的第二種方法是通過 TextEditor 類的 Setter 方法,我們將創建 SpellChecker 實例,該實例將被用于調用 setter 方法來初始化 TextEditor 的屬性。

因此,DI 主要有兩種變體和下面的兩個子章將結合實例涵蓋它們:

序號依賴注入類型 & 描述
1Constructor-based dependency injection

當容器調用帶有多個參數的構造函數類時,實現基于構造函數的 DI,每個代表在其他類中的一個依賴關系。

2Setter-based dependency injection

基于 setter 方法的 DI 是通過在調用無參數的構造函數或無參數的靜態工廠方法實例化 bean 之后容器調用 beans 的 setter 方法來實現的。

你可以混合這兩種方法,基于構造函數和基于 setter 方法的 DI,然而使用有強制性依存關系的構造函數和有可選依賴關系的 sette r是一個好的做法。

代碼是 DI 原理的清洗機,當對象與它們的依賴關系被提供時,解耦效果更明顯。對象不查找它的依賴關系,也不知道依賴關系的位置或類,而這一切都由 Spring 框架控制的。

關閉
程序員人生
主站蜘蛛池模板: 伊人久久大香线蕉久久婷婷 | 日韩特黄特色大片免费视频 | 亚洲一区二区三区高清 不卡 | 亚洲精品99久久久久久欧美版 | 网友自拍区一区二区三区 | 亚洲高清网站 | 亚洲精品日韩中文字幕久久久 | 羞羞动漫网 | 欧美成人午夜精品一区二区 | 成人 在线欧美亚洲 | 成人国内精品久久久久影院 | 精品久久久久久久 | 手机看片欧美 | 国产在线永久视频 | 一级黄色淫片 | 宅男午夜在线 | 最近最新视频中文字幕4 | 一级日本特黄毛片视频 | 中文字幕第一页在线视频 | 欧美欧美欧美 | 欧美国产高清 | 国产精品成人一区二区三区 | 日本成人不卡 | videos雌雄同体xxxx视频 | 欧美另类bbbbxxxx | 国产成人亚洲精品91专区手机 | 欧美性狂丰满性猛交 | 一级做a爱片性色毛片武则天五则 | 欧美洲精品亚洲精品中文字幕 | 国产大毛片 | 2022国产成人精彩在线视频 | 国产成人不卡亚洲精品91 | 最近中文字幕免费版在线 | 一级毛片在线免费看 | 国产亚洲第一 | 在线一区国产 | 欧美 日韩 成人 | www.亚洲成在线 | 亚洲综合综合在线 | 久久嫩草 | 亚洲网站视频 |