記得今年年初剛開始面試的時候,被問的最多的就是你知道Spring的兩大核心嘛?那你說說什麼是AOP,什麼是IOC?我相信你可能也被問了不少次了。面試
一、究竟是什麼是AOP?編程
所謂AOP也就是面向切面編程,可以讓咱們在不影響原有業務功能的前提下,橫切擴展新的功能。這裏面有一個比較顯眼的詞咱們須要注意一下,橫切,它是基於橫切面對程序進行擴展的。學習
二、AOP相關術語代理
在Spring的AOP中有不少的術語,並且容易混淆,你們必定要先搞清楚這幾個概念:對象
● 鏈接點(Joinpoint):在程序執行過程當中某個特定的點,好比類初始化前、類初始化後,方法調用前,方法調用後;
● 切點(Pointcut):所謂切點就是你所切取的類中的方法,好比你橫切的這個類中有兩個方法,那麼這兩個方法都是鏈接點,對這兩個方法的定位就稱之爲切點;
● 加強(Advice):加強是織入到鏈接點上的一段程序,另外它還擁有鏈接點的相關信息;
● 目標對象(Target):加強邏輯的織入目標類,就是個人加強邏輯植入到什麼位置;
● 引介(Introduction):一種特殊的加強,它能夠爲類添加一些屬性喝方法;
● 織入(Weaving):織入就是講加強邏輯添加到目標對象的過程;
● 代理(Proxy):一個類被AOP織入加強後,就會產生一個結果類,他是融合了原類和加強邏輯的代理類;get
● 切面(Aspect):切面由切點和加強組成,他是橫切邏輯定義和鏈接點定義的組成;io
三、AOP功能實踐擴展
咱們這裏主要是學習SpringBoot中的一些功能,因此咱們這裏用的是SpringBoot工程,版本也是最新的2.0.5版本。程序