Container and Injection

Container

廣義上講容器是用來包裝或裝載物品的貯存器(如箱、罐、壇)或者成形或柔軟不成形的包覆材料。在編程領域中,容器提供組件運行的環境,容器自己能夠提供一組服務,讓組件按標準方式利用。編程

Spring 提供容器功能,容器能夠管理對象的生命週期、對象與對象之間的依賴關係,您可使用一個配置文件(一般是XML),在上面定義好對象的名稱、如何產生(Prototype 方式或Singleton 方式)、哪一個對象產生以後必須設定成爲某個對象的屬性等,在啓動容器以後,全部的對象均可以直接取用,不用編寫任何一行程序代碼來產生對象,或是創建對象與對象之間的依賴關係。
換個更直白點的說明方式:容器是一個Java 所編寫的程序,原先必須自行編寫程序以管理對象關係,如今容器都會自動幫您做好。
工具

The History

 

1979年 — Chroot測試

2000年 — FreeBSD Jailsspa

2004年 — Solaris Zones對象

2008年 — LXC接口

2013年 — Docker生命週期

2016年 — Windows容器開發

Windows Server 容器io

Hyper-V 容器class

 

Injection

依賴注入不是目的,它是一系列工具和手段,最終的目的是幫助咱們開發出鬆散耦合(loose coupled)、可維護、可測試的代碼和程序。

第一種狀況下,Java實例的調用者建立被調用的Java實例,必然要求被調用的Java類出如今調用者的代碼裏。沒法實現兩者之間的鬆耦合。

第二種狀況下,調用者無須關心被調用者具體實現過程,只須要找到符合某種標準(接口)的實例,便可使用。此時調用的代碼面向接口編程,可讓調用者和被調用者解耦,這也是工廠模式大量使用的緣由。但調用者須要本身定位工廠,調用者與特定工廠耦合在一塊兒。

第三種狀況下,調用者無須本身定位工廠,程序運行到須要被調用者時,系統自動提供被調用者實例。事實上,調用者和被調用者都處於Spring的管理下,兩者之間的
依賴關係由Spring提供

相關文章
相關標籤/搜索