什麼是DI機制?
依賴注入(Dependecy Injection)和控制反轉(Inversion of Control)是同一個概念,具體的講:當某個角色
須要另一個角色協助的時候,在傳統的程序設計過程當中,一般由調用者來建立被調用者的實例。但在spring中
建立被調用者的工做再也不由調用者來完成,所以稱爲控制反轉。建立被調用者的工做由spring來完成,而後注入調用者
所以也稱爲依賴注入。
spring以動態靈活的方式來管理對象 , 注入的兩種方式,設置注入和構造注入。
設置注入的優勢:直觀,天然
構造注入的優勢:能夠在構造器中決定依賴關係的順序。
什麼是AOP?
面向切面編程(AOP)完善spring的依賴注入(DI),面向切面編程在spring中主要表現爲兩個方面
1.面向切面編程提供聲明式事務管理
2.spring支持用戶自定義的切面
spring 的優勢?1.下降了組件之間的耦合性 ,實現了軟件各層之間的解耦 2.可使用容易提供的衆多服務,如事務管理,消息服務等 3.容器提供單例模式支持 4.容器提供了AOP技術,利用它很容易實現如權限攔截,運行期監控等功能 5.容器提供了衆多的輔助類,能加快應用的開發 6.spring對於主流的應用框架提供了集成支持,如hibernate,JPA,Struts等 7.spring屬於低侵入式設計,代碼的污染極低 8.獨立於各類應用服務器 9.spring的DI機制下降了業務對象替換的複雜性 10.Spring的高度開放性,並不強制應用徹底依賴於Spring,開發者能夠自由選擇spring的部分或所有 面向切面編程(aop)是對面向對象編程(oop)的補充, 面向對象編程將程序分解成各個層次的對象,面向切面編程將程序運行過程分解成各個切面。 AOP從程序運行角度考慮程序的結構,提取業務處理過程的切面,oop是靜態的抽象,aop是動態的抽象, 是對應用執行過程當中的步驟進行抽象,,從而得到步驟之間的邏輯劃分。 aop框架具備的兩個特徵: 1.各個步驟之間的良好隔離性 2.源代碼無關性