Spring框架學習05——AOP相關術語詳解

一、Spring AOP 的基本概述

AOP(Aspect Oriented Programing)面向切面編程,AOP採起橫向抽取機制,取代了傳統縱向繼承體系重複性代碼(性能監視、事務管理、安全檢查、緩存)。Spring AOP使用純Java實現,不須要專門的編譯過程和類加載器,在運行期經過代理方式向目標類織入加強代碼。編程

二、AOP的相關術語

在Spring AOP 框架中涉及如下經常使用術語:緩存

  • 鏈接點(Joinpoint):是指程序運行中的一些時間點,即那些被攔截到的點,例如方法的調用或異常的拋出;
  • 切入點(Pointcut):是指須要處理的鏈接點,全部的方法執行都是鏈接點,而切入點是一個描述信息,它修飾的是鏈接點,經過切入點肯定哪些鏈接點須要被處理;
  • 切面(Aspect):是指封裝橫向切到系統功能的類(例如事務處理),是切入點和通知的結合;
  • 通知(Advice):也被稱爲加強,是由切面添加到特定的鏈接點的一段代碼,簡單來講,通知就是指攔截到的鏈接點以後所要作的事情,所以通知是切面的具體實現;通知分爲前置通知、後置通知、異常通知、最終通知、環繞通知;
  • 引介(Introduction):也被稱爲引入,容許在現有的實現類中添加自定義的方法和屬性;
  • 目標對象(Target Object):是指被通知的對象,即代理的目標對象;
  • 織入(Weaving):是將切面代碼插入到目標對象上,從而生成代理對象的過程;
  • 代理(Proxy):是通知應用到目標對象以後被動態建立的對象;

三、AOP術語詳解

建立dao包,並建立StuDao接口和接口實現類StuDaoImpl,代碼示例以下:
StuDaoImpl實現類安全

public class StuDaoImpl implements StuDao {
    @Override
    public void add(Stu stu) {
        System.out.println("添加學生");
    }

    @Override
    public void find() {
        System.out.println("查詢學生");
    }

    @Override
    public void update(Stu stu) {
        System.out.println("修改學生");
    }

    @Override
    public void delete(Stu stu) {
        System.out.println("刪除學生");
    }
}

參考以上代碼,其中:框架

  • Joinpoint(鏈接點)是指能夠被攔截到的點,實現類中的增刪改查這些方法均可以被加強,這些方法稱爲鏈接點;
  • Pointcut(切入點)是指真正被攔截到的點,若是隻想對add()方法進行加強(例如作數據校驗),add()方法就是切入點;
  • Advice(通知)是指攔截後要作的事情,也叫加強,若是對add()方法進行數據校驗,數據校驗的方法就是通知;
  • Target(目標對象)是指被加強的對象,實現類StuDaoImpl就是目標對象;
  • Weaving(織入)是指將通知應用到目標對象的過程,將數據校驗應用到StuDaoImpl的add()方法的過程,就是織入;
  • Proxy(代理)是指被應用了加強後,產生一個代理對象;
  • Aspect(切面)是指切入點和通知的組合;
相關文章
相關標籤/搜索