1.是對傳統OOP編程的一種補充
2.切面是一個可以自定義的特殊的類,裏面封裝了一系列橫切關注點
3.因爲可以設置橫切關注點的運行地點和運行方式,所以可以將這些橫切關注點統一用一個類管理,這個類就叫做切面,切面負責將橫切關注點模塊化
優點:
1.將非核心代碼寫在一個類,核心代碼寫在一個類,降低耦合性
2.各個模塊更加整潔清晰,便於管理
橫切關注點:從每個方法中抽取出來的非核心代碼,它和通知的區別就是它不是具體的某個方法,而是從非核心代碼分出來的概念,比如日誌等。
切面:一個開發者自定義的類,用於封裝橫切關注點的類,切面有不同的實現方式,比如AspectJ,兩者之間的關係就如同Java虛擬機規範和HotSpot之間的關係
通知:切面封裝了通知,通知可以看做其內的那些特定的帶有某些註解的方法
目標:被通知的對象
代理:切面被初始化後會爲該切面對應的bean創建代理
連接點
切入點
AspectJ:Java社區裏最完整最流行的AOP框架。
在Spring2.0以上版本中,可以使用基於AspectJ註解或基於XML配置的AOP。
導入包
源代碼和Javadoc可以不用導入
引入aop名稱空間