1. 程式人生 > >Spring AOP原始碼分析

Spring AOP原始碼分析

概述

定義

官方定義:Aspect-Oriented Programming (AOP) complements Object-Oriented Programming (OOP) by providing another way of thinking about program structure.
面向切面程式設計是對面向物件程式設計的補充,它提供了另一種關於程式結構的思考方式

關注點

面向物件程式設計關注的是物件和物件的行為
面向切面程式設計關注的是多個類的某些方法(橫切多個類的一個關注點模組)

涉及概念

  1. Aspect:切面,官方解釋 a modularization of a concern that cuts across multiple classes ( 橫切多個類的一個關注點模組),簡單說就是對類具體行為的關注點集合
  2. Join point:連線點,一個連線點通常代表著一個方法的呼叫,通過獲取連線點,我們可以控制在方法執行前後做一些控制,或是新增一些操作(代理)
  3. Advice:通知,切面在特定連線點上產生的動作,也就是我們要通過AOP實現的操作,型別:環繞通知aroud,前置通知before,後置通知after
  4. Target:目標物件,被一個或多個切面通知的物件,也被稱為被通知物件
  5. Proxy Pattern:代理模式(1 控制被訪問物件,2 給被訪問物件提供額外功能)

具體實現

參考:Spring原始碼分析-深入淺出AOP(圖文分析)