1、Aspectj是什麼正則表達式
官方網站的的介紹是這樣的:spring
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
區別:Spring Aop採用的動態織入,而Aspectj是靜態織入。靜態織入:指在編譯時期就織入,即:編譯出來的class文件,字節碼就已經被織入了。動態織入又分靜動兩種,靜則指織入過程只在第一次調用時執行;動則指根據代碼動態運行的中間狀態來決定如何操做,每次調用Target的時候都執行。有不清楚的同窗,能夠本身補下基礎的代理知識。模塊化
4、Aop術語解釋性能
基本上每篇Aop的文章都必講的內容,不過筆者所將可能與他們不一樣,筆者不會照本宣科。優化
pointcut: 是一個(組)基於正則表達式的表達式,有點繞,就是說他自己是一個表達式,可是他是基於正則語法的。一般一個pointcut,會選取程序中的某些咱們感興趣的執行點,或者說是程序執行點的集合。網站
joinPoint: 經過pointcut選取出來的集合中的具體的一個執行點,咱們就叫JoinPoint.
Advice: 在選取出來的JoinPoint上要執行的操做、邏輯。關於5種類型,我很少說,不懂的同窗本身補基礎。
aspect: 就是咱們關注點的模塊化。這個關注點可能會橫切多個對象和模塊,事務管理是橫切關注點的很好的例子。它是一個抽象的概念,從軟件的角度來講是指在應用程序不一樣模塊中的某一個領域或方面。又pointcut 和 advice組成。
Target:被aspectj橫切的對象。咱們所說的joinPoint就是Target的某一行,如方法開始執行的地方、方法類調用某個其餘方法的代碼。