Spring面試,IoC和AOP的理解

spring 的優點?
1.降低了組件之間的耦合性 ,實現了軟件各層之間的解耦 
2.可以使用容易提供的衆多服務,如事務管理,消息服務等 
3.容器提供單例模式支持 
4.容器提供了AOP技術,利用它很容易實現如權限攔截,運行期監控等功能 
5.容器提供了衆多的輔助類,能加快應用的開發 
6.spring對於主流的應用框架提供了集成支持,如hibernate,JPA,Struts等 
7.spring屬於低侵入式設計,代碼的污染極低 
8.獨立於各種應用服務器 
9.spring的DI機制降低了業務對象替換的複雜性 
10.Spring的高度開放性,並不強制應用完全依賴於Spring,開發者可以自由選擇spring的部分或全部 

什麼是DI機制? 
依賴注入(Dependecy Injection)和控制反轉(Inversion of Control)是同一個概念,具體的講:當某個角色需要另外一個角色協助的時候,在傳統的程序設計過程中,通常由調用者來創建被調用者的實例。但在spring中創建被調用者的工作不再由調用者來完成,因此稱爲控制反轉。創建被調用者的工作由spring來完成,然後注入調用者 

因此也稱爲依賴注入。 
spring以動態靈活的方式來管理對象 , 注入的兩種方式,設置注入和構造注入。 
設置注入的優點:直觀,自然 
構造注入的優點:可以在構造器中決定依賴關係的順序。 

什麼是AOP? 
面向切面編程(AOP)完善spring的依賴注入(DI),面向切面編程在spring中主要表現爲兩個方面 
1.面向切面編程提供聲明式事務管理 
2.spring支持用戶自定義的切面 

面向切面編程(aop)是對面向對象編程(oop)的補充, 
面向對象編程將程序分解成各個層次的對象,面向切面編程將程序運行過程分解成各個切面。 
AOP從程序運行角度考慮程序的結構,提取業務處理過程的切面,oop是靜態的抽象,aop是動態的抽象, 
是對應用執行過程中的步驟進行抽象,,從而獲得步驟之間的邏輯劃分。 

aop框架具有的兩個特徵: 
1.各個步驟之間的良好隔離性 
2.源代碼無關性 

 

Spring的事務管理機制實現的原理,就是通過這樣一個動態代理對所有需要事務管理的Bean進行加載,並根據配置在invoke方法中對當前調用的 方法名進行判定,並在method.invoke方法前後爲其加上合適的事務管理代碼,這樣就實現了Spring式的事務管理。Spring中的AOP實 現更爲複雜和靈活,不過基本原理是一致的。

發佈了65 篇原創文章 · 獲贊 26 · 訪問量 7萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章