Spring 2.0 的AOP介紹及其通知類型

Spring 2.0的AOPhtml

  在Spring 2.0中最激動人心的加強之一是關於Spring AOP,它變得更加便於使用並且更增強大,主要是經過複雜而成熟的AspectJ語言的支持功能來實現,而同時保留純的基於代理的Java運行時。Spring 2.0的AOP提供給咱們一種新的思考程序結構的方法,可以解決不少純OOP沒法解決的問題——讓咱們可以在一個模塊中實現某些需求,而不是以發散的方式實現。Spring 2.0容許用戶選擇使用基於模式或@AspectJ註解的方式來自定義切面。這兩種風格都支持全部類型的通知(advice)和AspectJ的切入點語言,雖然實際上仍然使用Spring AOP進行織入(Weaving)。編程

Spring 2.0 的AOP在Spring Framework中的做用數組

  Spring 2.0的AOP提供聲明式企業服務,特別是爲了替代EJB聲明式服務。最重要的服務是聲明性事務管理。容許用戶實現自定義切面,用AOP來完善OOP的使用。緩存

Spring 2.0 的AOP通知類型:spa

Spring 2.0的AOP前置通知(Before advice):在某鏈接點以前執行的通知,但這個通知不能阻止鏈接點以前的執行流程(除非它拋出一個異常)。代理

Spring 2.0的AOP後置通知(After returning advice):在某鏈接點正常完成後執行的通知:例如,一個方法沒有拋出任何異常,正常返回。htm

Spring 2.0的AOP異常通知(After throwing advice):在方法拋出異常退出時執行的通知。對象

Spring 2.0的AOP最終通知(After (finally) advice):當某鏈接點退出的時候執行的通知(不管是正常返回仍是異常退出)。事務

Spring 2.0的AOP環繞通知(Around Advice):包圍一個鏈接點的通知,如方法調用。這是最強大的一種通知類型。環繞通知能夠在方法調用先後完成自定義的行爲。它也會選擇是否繼續執行鏈接點或直接返回它本身的返回值或拋出異常來結束執行。環繞通知是最經常使用的通知類型。和AspectJ同樣,Spring提供全部類型的通知,咱們推薦你使用盡量簡單的通知類型來實現須要的功能。例如,若是你只是須要一個方法的返回值來更新緩存,最好使用後置通知而不是環繞通知,儘管環繞通知也能完成一樣的事情。用最合適的通知類型可使得編程模型變得簡單,而且可以避免不少潛在的錯誤。好比,你不須要在JoinPoint上調用用於環繞通知的proceed()方法,就不會有調用的問題。在Spring 2.0中,全部的通知參數都是靜態類型,所以你可使用合適的類型(例如一個方法執行後的返回值類型)做爲通知的參數而不是使用Object數組。經過切入點匹配鏈接點的概念是AOP的關鍵,這使得AOP不一樣於其它僅僅提供攔截功能的舊技術。 切入點使得通知可以獨立對應到面向對象的層次結構中。例如,一個提供聲明式事務管理 的環繞通知能夠被應用到一組橫跨多個對象的方法上(例如服務層的全部業務操做)。get

文章轉載自:[169IT-最新最全的IT資訊]
本文標題:Spring 2.0 的AOP介紹及其通知類型

相關文章
相關標籤/搜索