1. 程式人生 > >Spring學習筆記(一)——AOP和IoC

Spring學習筆記(一)——AOP和IoC

用學習筆記的形式記錄自己在學習Spring的時候遇到的問題和自己的理解。

對AOP和IoC的理解

什麼是AOP?

在網上百度應有各種各樣的理解和答案,AOP(Aspect Oriented Programming)即面向切面程式設計。

所謂的切面即把各個模組分割開,比如日誌、安全等,形成一層一層的結構,每個切面可以單獨程式設計,如下所示

如上紅圈內的日誌模組和安全模組劃分為切面,是立體結構,脫離了傳統的“一條龍”程式設計,增強了程式碼的複用性和容錯性,大大簡化了開發。

切面可以就這麼直觀的理解他,在傳統程式設計的基礎上一刀切出來的一個面,僅為個人見解。

什麼是IoC?

IoC(Inversion of Control)即控制反轉。

說反轉,肯定有正轉,所謂正轉就是我們在程式設計的時候由我們自己配置依賴的物件。

反轉是指由負責協調各個物件的第三方元件對物件的依賴關係進行配置,依賴物件的獲取被反轉。這裡的協調各個物件的第三方元件就稱為“容器”。

控制者:IoC容器

控制內容:外部資源的獲取

那麼這就引出一個概念:DI(Dependency Injection)即依賴注入,實際上,DI就是IoC的具體實現,關於IoC的實現還有一種方法是依賴查詢,不過已經是過去式。

所謂注入,就是將屬性、方法等載入到目標物件中,完成物件的配置。

在Spring中,則是由Spring來控制物件的生命週期和物件之間的關係。

如有不足,請多多指教

參考資料:Spring 實戰 第四版