Spring - (5) AOP概述

AOP概述

1.是對傳統OOP編程的一種補充
2.切面是一個可以自定義的特殊的類,裏面封裝了一系列橫切關注點
3.因爲可以設置橫切關注點的運行地點和運行方式,所以可以將這些橫切關注點統一用一個類管理,這個類就叫做切面,切面負責將橫切關注點模塊化

優點:

1.將非核心代碼寫在一個類,核心代碼寫在一個類,降低耦合性
2.各個模塊更加整潔清晰,便於管理

AOP術語

橫切關注點:從每個方法中抽取出來的非核心代碼,它和通知的區別就是它不是具體的某個方法,而是從非核心代碼分出來的概念,比如日誌等。
切面:一個開發者自定義的類,用於封裝橫切關注點的類,切面有不同的實現方式,比如AspectJ,兩者之間的關係就如同Java虛擬機規範和HotSpot之間的關係
在這裏插入圖片描述
通知:切面封裝了通知,通知可以看做其內的那些特定的帶有某些註解的方法
目標:被通知的對象
在這裏插入圖片描述
代理:切面被初始化後會爲該切面對應的bean創建代理
連接點
切入點

AspectJ

簡介

AspectJ:Java社區裏最完整最流行的AOP框架。
在Spring2.0以上版本中,可以使用基於AspectJ註解或基於XML配置的AOP。

在Spring中啓用AspectJ註解支持
  1. 導入包
    在這裏插入圖片描述
    源代碼和Javadoc可以不用導入

  2. 引入aop名稱空間
    在這裏插入圖片描述