Aspectj之一簡介

1、Aspectj是什麼正則表達式

  官方網站的的介紹是這樣的:spring

 

  • a seamless aspect-oriented extension to the Javatm programming language(一種基於Java平臺的面向切面編程的語言)
  • Java platform compatible(兼容Java平臺,能夠無縫擴展)
  • easy to learn and use(易學易用)

 

 2、Aspectj能作什麼編程

        clean modularization of crosscutting concerns, such as error checking and handling, synchronization, context-sensitive behavior, performance optimizations, monitoring and logging, debugging support, and multi-object protocols。性能優化

         大意是說:乾淨的模塊化橫切關注點(也就是說單純,基本上無侵入),如錯誤檢查和處理,同步,上下文敏感的行爲,性能優化,監控和記錄,調試支持,多目標的協議。框架

 

3、還有那些經常使用的Aop以及他們的區別less

  • Jboss Aop:我基本上沒有用過,因此沒有發言權
  • Spring Aop:Spring本身原生的Aop,只能用一個詞來形容:難用。 你須要實現大量的接口,繼承大量的類,因此spring aop一度被千夫所指。這於他的無侵入,低耦合徹底衝突。不過Spring對開源的優秀框架,組建向來是採用兼容,併入的態度。因此,後來的Spring 就提供了Aspectj支持,也就是咱們後來所說的基於純POJO的Aop。

   區別:Spring Aop採用的動態織入,而Aspectj是靜態織入。靜態織入:指在編譯時期就織入,即:編譯出來的class文件,字節碼就已經被織入了。動態織入又分靜動兩種,靜則指織入過程只在第一次調用時執行;動則指根據代碼動態運行的中間狀態來決定如何操做,每次調用Target的時候都執行。有不清楚的同窗,能夠本身補下基礎的代理知識。模塊化

 

 

4、Aop術語解釋性能

   基本上每篇Aop的文章都必講的內容,不過筆者所將可能與他們不一樣,筆者不會照本宣科。優化

   pointcut: 是一個(組)基於正則表達式的表達式,有點繞,就是說他自己是一個表達式,可是他是基於正則語法的。一般一個pointcut,會選取程序中的某些咱們感興趣的執行點,或者說是程序執行點的集合。網站

   joinPoint: 經過pointcut選取出來的集合中的具體的一個執行點,咱們就叫JoinPoint.

   Advice: 在選取出來的JoinPoint上要執行的操做、邏輯。關於5種類型,我很少說,不懂的同窗本身補基礎。

   aspect: 就是咱們關注點的模塊化。這個關注點可能會橫切多個對象和模塊,事務管理是橫切關注點的很好的例子。它是一個抽象的概念,從軟件的角度來講是指在應用程序不一樣模塊中的某一個領域或方面。又pointcut 和  advice組成。

   Target:被aspectj橫切的對象。咱們所說的joinPoint就是Target的某一行,如方法開始執行的地方、方法類調用某個其餘方法的代碼。

相關文章
相關標籤/搜索