ioc與aop是spring框架的兩大特性,學習spring之前不得不先了解下這兩大特性。
猶記得上軟體工程課時,老師強調軟體系統之間要「高內聚、低耦合」。這裡就簡單記錄下耦合。耦合具有雙面性。一方面,高耦合的**難以復用、維護、理解,並且不易修復bug,因為修復乙個bug就可能出現其他bug這種情況。另一方面,一定程度的耦合又是必須的,完全沒有耦合的**可能無法完成功能。因此,為了完成軟體功能,耦合是必須的,但需要謹慎管理。[1]
ioc,即inversion of control,控制反轉。
控制反轉是把傳統上由程式**操控的物件的呼叫權直接交給容器,通過容器來實現物件元件的裝配和管理,即由容器來建立物件並管理物件之間的依賴關係。
ioc容器載入過程:建立ioc配置檔案抽象資源;建立乙個beanfactory;把讀取配置資訊的beandefinitionreader,是xmlbeandefinitionreader配置給beanfactory;把定義好的資源位置讀入配置資訊,具體的解析過程由xmlbeandefinitionreader來完成,這樣完成整個載入bean定義的過程。
di,即dependency injection,依賴注入,由容器動態地將某種依賴關係注入到元件之中。
通過di,物件的依賴關係將由系統中負責協調各物件的第三方元件在建立物件時進行設定,物件無需自行建立或管理他們的依賴關係,依賴關係將自動被注入到需要他們的物件當中去。[1]
aop,即aspect-oriented programming,面向切面程式設計。
di能夠解耦,aop則允許把遍布應用各處的功能分離出來形成可重用的元件。
面向切面程式設計,能促使軟體系統實現關注點分離。系統有許多不同的元件組成,每個元件各負責一塊特定功能。除了實現自身核心的功能外,這些元件還常承擔著額外的職責。諸如日誌、事務管理和安全這樣的系統服務經常融入到自身具有核心業務邏輯的元件中區,這些系統服務通常被稱為橫切關注點。[1]
spring模組 [2]
[1]:《spring實戰》
[2]:
Java學習開始 第一天
變數的作用範圍 1 成員變數 在類體中定義的變數為成員變數。作用是整個類,也就是說這個類中都可以訪問到定義的這個成員變數。2 區域性變數 在乙個函式 亦或是方法 或函式內 塊中定義的變數稱為區域性變數,區域性變數在函式或 塊被執行師建立,在函式或 塊結束時被銷毀。在進行取值操作之前必須被初始化或賦值...
Spring 複習第一天
一 sping的優點 1 方便解耦,簡化開發 spring就是乙個大工廠,可以將所有物件建立和依賴關係維護,交給spring管理。2 aop程式設計的支援 spring提供面向切面程式設計,可以方便的實現對程式進行許可權攔截,執行監控等功能。3 宣告式事務的支援 只需要通過配置就可以完成對事物的管理...
C 學習第一天 開始
由於c 和c在基礎部分基本差不多,所以只記錄一些c 的不同點。1 main函式的返回值必須是int。2 io的標準庫為 iostream庫。即在程式頭上呼叫 include3 io 標準輸入 cin 標準輸出 cout 標準錯誤 cerr 用來輸出警告和錯誤訊息 clog 用來輸出程式的一般性資訊 ...