struts2.1筆記03:AOP編程和攔截器概念的簡介

1.AOP編程編程

AOP編程,也叫面向切面編程(也叫面向方面):Aspect Oriented Programming(AOP),是目前軟件開發中的一個熱點,也是Spring框架中的一個重要內容。利用AOP能夠對業務邏輯的各個部分進行隔離,從而使得業務邏輯各部分之間的耦合度下降,提升程序的可重用性,同時提升了開發的效率。   AOP是OOP的延續,是(Aspect Oriented Programming)的縮寫,意思是面向切面(方面)編程。 
能夠經過預編譯方式和運行期動態代理實如今不修改源代碼的狀況下給程序動態統一添加功能的一種技術。AOP實際是GoF設計模式的延續,設計模式孜孜不倦追求的是調用者和被調用者之間的解耦,AOP能夠說也是這種目標的一種實現。設計模式

 

2.攔截器框架

攔截器,在AOP(Aspect-Oriented Programming)中用於在某個方法或字段被訪問以前,進行攔截而後在以前或以後加入某些操做。攔截是AOP的一種實現策略。 
攔截器是動態攔截Action調用的對象。它提供了一種機制能夠使開發者能夠定義在一個action執行的先後執行的代碼,也能夠在一個action執行前阻止其執行。同時也是提供了一種能夠提取action中可重用的部分的方式。

攔截器棧(Interceptor Stack)相似於過濾器鏈。攔截器棧就是將攔截器按必定的順序聯結成一條鏈。在訪問被攔截的方法或字段時,攔截器棧的攔截器就會按其以前定義的順序被調用。

也能夠叫作攔截器鏈(Interceptor Stack),攔截器棧一詞更明確的表名了鏈接器鏈的實現方式。

Struts2的攔截器和Filter相似。在執行Action的execute方法以前,Struts2會首先執行在struts.xml中引用的攔截器,在執行完全部引用的攔截器的intercept方法後,會執行Action的execute方法。 

當請求到達Struts 2的ServletDispatcher時,Struts 2會查找配置文件,並根據其配置實例化相對的攔截器對象,而後串成一個列表(list),最後一個一個地調用列表中的攔截器spa

相關文章
相關標籤/搜索