Spring IOC/DI和AOP原理

一 IOC/DI性能

  1. 概念及原理debug

  IOC: Inversion of Control(控制反轉)是一種設計思想,就是容器控制應用程序所須要外部資源的建立和管理,而後將其反轉給應用程序。對象及其依賴對象的建立及維護都不須要在應用程序中實現,將其交給IOC容器去管理。傳統的開發中,咱們本身在對象內部建立依賴對象並注入當前對象,完成依賴關係的維護;對於IOC而言,它強調是將主動變爲被動,由IOC容器來負責依賴對象的建立和查找,由IOC容器來進行注入組合對象,咱們只須要在相關的配置文件中維護對象之間的依賴關係便可。設計

  DI: Dependency Injection,即「依賴注入」。其實IOC和DI本就是同一個概念的兩種不一樣的表述,應用程序依賴容器提供的外部對象,容器將其依賴的外部資源在運行期注入到應用程序中;某個對象被調用時,其所依賴的對象由容器注入。代理

  2. 優勢日誌

  第一,資源集中管理,實現資源的可配置和易管理,下降對象關係維護的複雜度。對象

  第二,下降了使用資源雙方的依賴程度,也就是咱們說的耦合度。事務

 

二 AOP資源

  1. 概念和原理開發

  AOP利用一種稱爲「橫切」的技術,剖解開封裝的對象內部,將那些影響多個類的公共行爲封裝到一個可重用模塊,並將其名爲方面(Aspect)。所謂「方面」,簡單地說,就是將那些與業務無關,卻爲業務模塊所共同調用的邏輯封裝起來的部分。以便於減小系統的重複代碼,下降模塊間的耦合度,並有利於系統維護。編譯器

  使用「橫切」技術,AOP把軟件系統分爲兩個部分:核心關注點(業務邏輯)和橫切關注點(通用邏輯,即方面)。業務處理的主要流程是核心關注點,與之關係不大的部分是橫切關注點。橫切關注點的特色是,其常常發生在覈心關注點的多處,而各處都基本類似。好比權限認證、日誌、事務處理,debug管理,性能檢測等。AOP 的做用在於分離系統中的各類關注點,將核心關注點和橫切關注點分離開來。

  2. 實現方式

    實現AOP的技術,主要分爲兩大類:

  一是採用動態代理技術,利用截取消息的方式,對該消息進行裝飾,以取代原有對象行爲的執行;

  二是採用靜態織入的方式,引入特定的語法建立「方面」,從而使得編譯器能夠在編譯期間織入有關「方面」的代碼。

  3. 優勢

  ①.橫切關注點的代碼都集中於一塊,再也不是分散在各個業務組件中,不會出現大量重複代碼;

  ②.核心模塊只關注核心功能的代碼,與通用模塊分離,模塊間藕合度下降。

相關文章
相關標籤/搜索