spring2 Aop與事務、許可權管理

yuanyuan啊發表於2020-02-01

1.aop的應用場景?
在這裡插入圖片描述
2.Aop的原理?
Aop 指面向切面程式設計,作為物件導向的補充,用於處理系統中分佈於各個模組的橫切關注點,比如事務管理、日誌、快取等。Aop實現的關鍵在於AOP框架自動建立AOP代理,主要分為:靜態代理和動態代理,靜態代理的代表為AspectJ;而動態代理則以Speing Aop為代表。

Spring Aop中的動態代理主要有兩種方式,JDK動態代理和CGLIB動態代理。JDK動態代理通過反射來接受被代理的類,並且要求被代理的類必須實現一個介面。JDK動態代理的核心是InvocationHandler介面和Proxy類。

如果目標類沒有實現介面,那麼Spring Aop會選擇使用CGLIB動態代理目標類。CGLIB,是一個程式碼生成的類庫,可以在執行時動態的生成某個類的子類。

3.如何理解AOP中的連線點、切點、增強、引介、織入、切面這些概念

  1. 連線點:程式執行的某個特定位置(如:某個方法呼叫前、呼叫後,方法丟擲異常後)。一個類或一段程式擁有一些具有邊界性質的特定點,這些程式碼中的特定點就是連線點。

  2. 切點:如果連線點相當於資料中的記錄,那麼切點相當於查詢條件,一個切點可以匹配多個連線點。Spring Aop的規則解析引擎負責解析切點所設定的查詢條件,找到對應的連線點。

  3. 增強:增強是織入到目標類連線點上的一段程式程式碼。Spring提供的增強介面都是帶方位名的,如:BeforeAdvice…

  4. 引介:引介是一種特殊的增強。它為類新增一些屬性和方法。

  5. 織入:織入是將增強新增到目標類具體連線點上的過程。

  6. 切面:前面是由切點和增強(引介)組成的,它包括了對橫切關注功能的定義,也包括了對連線點的定義。

    								***帥氣的遠遠啊***
    

相關文章