Spring支持兩種類型的事務管理:java
面向切面的編程,或AOP, 是一種編程技術,容許程序模塊化橫向切割關注點,或橫切典型的責任劃分,如日誌和事務管理。編程
AOP核心就是切面,它將多個類的通用行爲封裝成可重用的模塊,該模塊含有一組API提供橫切功能。好比,一個日誌模塊能夠被稱做日誌的AOP切面。根據需求的不一樣,一個應用程序能夠有若干切面。在Spring AOP中,切面經過帶有@Aspect註解的類實現。安全
關注點是應用中一個模塊的行爲,一個關注點可能會被定義成一個咱們想實現的一個功能。
橫切關注點是一個關注點,此關注點是整個應用都會使用的功能,並影響整個應用,好比日誌,安全和數據傳輸,幾乎應用的每一個模塊都須要的功能。所以這些都屬於橫切關注點。app
鏈接點表明一個應用程序的某個位置,在這個位置咱們能夠插入一個AOP切面,它其實是個應用程序執行Spring AOP的位置。框架
通知是個在方法執行前或執行後要作的動做,其實是程序執行時要經過SpringAOP框架觸發的代碼段。模塊化
Spring切面能夠應用五種類型的通知:spa
切入點是一個或一組鏈接點,通知將在這些位置執行。能夠經過表達式或匹配的方式指明切入點。.net
引入容許咱們在已存在的類中增長新的方法和屬性。設計
被一個或者多個切面所通知的對象。它一般是一個代理對象。也指被通知(advised)對象。代理
代理是通知目標對象後建立的對象。從客戶端的角度看,代理對象和目標對象是同樣的。
BeanNameAutoProxyCreator
DefaultAdvisorAutoProxyCreator
Metadata autoproxying
織入是將切面和到其餘應用類型或對象鏈接或建立一個被通知對象的過程。
織入能夠在編譯時,加載時,或運行時完成。
在這種狀況下,切面由常規類以及基於XML的配置實現。
在這種狀況下(基於@AspectJ的實現),涉及到的切面聲明的風格與帶有java5標註的普通java類一致。
Spring 配備構建Web 應用的全功能MVC框架。Spring能夠很便捷地和其餘MVC框架集成,如Struts,Spring 的MVC框架用控制反轉把業務對象和控制邏輯清晰地隔離。它也容許以聲明的方式把請求參數和業務對象綁定。
Spring的MVC框架是圍繞DispatcherServlet來設計的,它用來處理全部的HTTP請求和響應。
WebApplicationContext 繼承了ApplicationContext 並增長了一些WEB應用必備的特有功能,它不一樣於通常的ApplicationContext ,由於它能處理主題,並找到被關聯的servlet。
控制器提供一個訪問應用程序的行爲,此行爲一般經過服務接口實現。控制器解析用戶輸入並將其轉換爲一個由視圖呈現給用戶的模型。Spring用一個很是抽象的方式實現了一個控制層,容許用戶建立多種用途的控制器。
該註解代表該類扮演控制器的角色,Spring不須要你繼承任何其餘控制器基類或引用Servlet API。
該註解是用來映射一個URL到一個類或一個特定的方處理法上。