這篇文章主要介紹了Java的Spring框架下的AOP的作用,需要的朋友可以參考
假如沒有aop,在做日誌處理的時候,我們會在每個方法中添加日誌處理,例如
但大多數的日子處理程式碼是相同的,為了實現程式碼重複使用,我們可能把日誌處理抽離成一個新的方法。但是這樣我們仍然必須手動插入這些方法。
但這樣兩個方法就是強耦合的,假如此時我們不需要這個功能了,或者想換成其他功能,那麼就必須一個個修改。
透過動態代理,可以在指定位置執行對應流程。這樣就可以將一些橫向的功能抽離出來形成一個獨立的模組,然後在指定位置
插入這些功能。這樣的思想,稱為面向切面編程,亦即AOP。
為了在指定位置執行這些橫向的功能,需要知道指定的是什麼地方
例如上圖,方法層級的aop實現,在一個程式執行鏈條中,把methodJAVA中Spring Aop作用詳解稱為切點,也就是說在methodJAVA中Spring Aop作用詳解執行時會執行橫切的功能,那麼是在methodJAVA中Spring Aop作用詳解之前還是之後呢,又是執行什麼呢?這些都由advice(通知)來指定。 advice有JAVA中Spring Aop作用詳解種類型,分別是
在通知類型 簡介
Before(前置通知) 目標方法呼叫之前執行
#After(後置通知) 目標方法呼叫之後執行
After-returning(回傳通知) 目標方法執行成功後執行
After-throwing (異常通知) 目標方法拋出異常後執行
Around(環繞通知) 相當於合併了前置和後置
@Aspect @Component public class UserAspect { @Before("execution(* com.aop.service.impl.UserServiceImpl.login(..))") public void loginLog(){ System.out.println("user login"); } }
以上是JAVA中Spring Aop作用詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!