日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Container Injection

發布時間:2023/11/30 编程问答 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Container Injection 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Container的歷史:

  2000 年的時候 FreeBSD 開發了一個類似于 chroot 的容器技術 Jails,這是最早期,也是功能最多的容器技術。Jails 英譯過來是監獄的意思,這個“監獄”(用沙盒更為準確)包含了文件系統、用戶、網絡、進程等的隔離。

  2001 Linux 也發布自己的容器技術 Linux VServer,2004 Solaris 也發布了 Solaris Containers,兩者都將資源進行劃分,形成一個個 zones,又叫做虛擬服務器。

  2005 年推出 OpenVZ,它通過對 Linux 內核進行補丁來提供虛擬化的支持,每個 OpenVZ 容器完整支持了文件系統、用戶及用戶組、進程、網絡、設備和 IPC 對象的隔離。

  2007 年 Google 實現了 Control Groups( cgroups ),并加入到 Linux 內核中,這是劃時代的,為后期容器的資源配額提供了技術保障。

  2008 年基于 cgroups 和 linux namespace 推出了第一個最為完善的 Linux 容器 LXC。

  2013 年推出到現在為止最為流行和使用最廣泛的容器 Docker,相比其他早期的容器技術,Docker 引入了一整套容器管理的生態系統,包括分層的鏡像模型,容器注冊庫,友好的 Rest API。

  2014 年 CoreOS 也推出了一個類似于 Docker 的容器 Rocket,CoreOS 一個更加輕量級的 Linux 操作系統,在安全性上比 Docker 更嚴格。

  2016 年微軟也在 Windows 上提供了容器的支持,Docker 可以以原生方式運行在 Windows 上,而不是需要使用 Linux 虛擬機。

為什么需要容器

  其一,這是技術演進的一種創新結果,其二,這是人們追求高效生產活動的一種工具。

  隨著軟件開發的發展,相比于早期的集中式應用部署方式,現在的應用基本都是采用分布式的部署方式,一個應用可能包含多種服務或多個模塊,因此多種服務可能部署在多種環境中,如虛擬服務器、公有云、私有云等,由于多種服務之間存在一些依賴關系,所以可能存在應用在運行過程中的動態遷移問題,那這時如何保證不同服務在不同環境中都能平滑的適配,不需要根據環境的不同而去進行相應的定制,就顯得尤為重要。

injection:

  在軟件工程中,依賴注入是一種技術,其中一個對象(或靜態方法)提供另一個對象的依賴關系。依賴項是可以使用的對象(服務)。注入是將依賴項傳遞給將使用它的依賴對象(客戶端)。該服務是客戶所在端的一部分。將服務傳遞給客戶端,而不是允許客戶端構建或找到服務,是模式的基本要求。

  Dependency Injection (DI) 就是在類之間的互相引用,都采用Interface來代替。后臺有Container,每個Interface包含一個Object,實際上這是一個Singleton的概念,所以在使用Singleton的時候,要避免使用DI,雖然DI支持非Singleton,但是感覺邏輯上不太符合常理。

優點:

A. 減少依賴關系通過Interface互相聯系,這樣兩個組件之間關聯少一些。

B. 更加方便重復使用只要是Interface相同,組件可以在不同的場合中重復使用。

C. 更容易測試Test 的代碼不需要和使用代碼有任何關聯,設置好Container,然后組件就自動生成。與正常運行,完全相同的測試環境,不需要考慮構造函數等等。

D. 更容易閱讀,需看Interface即可,一旦測試封裝結束后,不需要讀里面的代碼。

E. 減少Dependency Carry就是如果在最底層的引用某個變量,需要從最頂層一點點傳遞下來,如果用DI,就可以跳過中間部分。這個說得是Singleton,如果頂層的變量有一些特定的值,無法從Container中生成的話,就沒必要了。

?

  

轉載于:https://www.cnblogs.com/BleachCurtain/p/10586220.html

總結

以上是生活随笔為你收集整理的Container Injection的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。