Java開發學習(二十)----AOP總結

一、AOP的核心概念

  • 概念:AOP(Aspect Oriented Programming)面向切面編程,一種編程範式

  • 作用:在不驚動原始設計的基礎上爲方法進行功能增強

  • 核心概念

    • 代理(Proxy):SpringAOP的核心本質是採用代理模式實現的

    • 連接點(JoinPoint):在SpringAOP中,理解爲任意方法的執行

    • 切入點(Pointcut):匹配連接點的式子,也是具有共性功能的方法描述

    • 通知(Advice):若干個方法的共性功能,在切入點處執行,最終體現爲一個方法

    • 切面(Aspect):描述通知與切入點的對應關係

    • 目標對象(Target):被代理的原始對象成爲目標對象

二、切入點表達式

  • 切入點表達式標準格式:動作關鍵字(訪問修飾符 返回值 包名.類/接口名.方法名(參數)異常名)

    execution(* com.itheima.service.*Service.*(..))
  • 切入點表達式描述通配符:

    • 作用:用於快速描述,範圍描述

    • *:匹配任意符號(常用)

    • .. :匹配多個連續的任意符號(常用)

    • +:匹配子類類型

  • 切入點表達式書寫技巧

    1.按標準規範開發 
    2.查詢操作的返回值建議使用*匹配 
    3.減少使用..的形式描述包 
    4.對接口進行描述,使用*表示模塊名,例如UserService的匹配描述爲*Service 
    5.方法名書寫保留動詞,例如get,使用*表示名詞,例如getById匹配描述爲getBy* 
    6.參數根據實際情況靈活調整

三、五種通知類型

  • 前置通知

  • 後置通知

  • 環繞通知(重點)

    • 環繞通知依賴形參ProceedingJoinPoint才能實現對原始方法的調用

    • 環繞通知可以隔離原始方法的調用執行

    • 環繞通知返回值設置爲Object類型

    • 環繞通知中可以對原始方法調用過程中出現的異常進行處理

  • 返回後通知

  • 拋出異常後通知

四、通知中獲取參數

  • 獲取切入點方法的參數,所有的通知類型都可以獲取參數

    • JoinPoint:適用於前置、後置、返回後、拋出異常後通知,設置爲方法的第一個形參

    • ProceedingJoinPoint:適用於環繞通知

  • 獲取切入點方法返回值,前置和拋出異常後通知是沒有返回值,後置通知可有可無,所以不做研究

    • 返回後通知

    • 環繞通知

  • 獲取切入點方法運行異常信息,前置和返回後通知是不會有,後置通知可有可無,所以不做研究

    • 拋出異常後通知

    • 環繞通知

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章