1. 程式人生 > >Spring中關於AOP的實踐之概念

Spring中關於AOP的實踐之概念

一.什麼是AOP

AOP:也稱作面向切面程式設計

在分享幾個概念執行我想先舉個栗子(可能例子舉得並不是特別恰當):

1.假如路人A走在大街上,被一群壞人綁架了;

2.警察叔叔接到報警迅速展開行動:收集情報,人員組織,準備裝備。。。

3.警察和壞人打了一架,將人質解救出來(在這裡我假設人質A受了傷)

4.警察叔叔將人質送往醫院治療

5.警察舉行新聞釋出會,宣佈人質解救成功。

具體流程如下:

但是問題來了,如果哪一天又有人被綁架了,警察叔叔又得通過這一系列流程,有的情況下準備的時間遠遠大於解救人質所花的時間,那麼能不能將一些通用的步驟進行託管,所以有了下面的改進:

情報收集與物質人員準備交給後勤機構,運送傷員則交給醫護人員。警察叔叔就專注於與營救人質。

好了現在來解釋一下關於Spring中關於AOP的幾個要點:

1.切點:即程式沿縱向正常執行時的其中一個方法

2.通知:通知分為前置通知與後置通知,前置通知即在切點執行之前先行執行(個人認為多用於資源的準備),後置通知則是在切點執行完成後執行(個人認為多用於方法結束後對資源的處理)

3.切面:正常的程式執行是縱向的,如同一個管道,前置與後置通知的加入如同在管道的某一點切了一刀,程式暫時性的橫向執行,即切點與通知一起組成了切面。

4織入:即將通知方法放入到切面中的一種稱謂(放入的動作就稱為織入)