二刷能變強系列 Spring AOP

2021-10-23 13:51:59 字數 1587 閱讀 3076

當我們需要公升級業務修改邏輯**時,我們要保證公升級後的業務**需要相容以前的處理邏輯,也就是說再保留原有的功能邏輯的基礎上,進行新的業務功能開發,這個時候就需要我們去修改當前的功能方法原始碼,增加新的邏輯**,然後重新執行專案,這個時候就會出現:

(1)假如我們有當前功能方法的原始碼,就需要閱讀當前方法的原始碼,然後在增加自己的新的邏輯**,並且修改後,需要將新的類檔案替換舊的類檔案,本身閱讀**效率較低。

(2)假如我們沒有原始碼,那就無法直接修改原始碼,哪還怎麼公升級?

方案一:

我們有乙個a物件,a中有個test()方法,我們需要對a的test方法進行公升級,此時我們就去閱讀a的test()方法,然後對a的test()進行邏輯修改。

方案二:

其實我們使用了方案二已經是對**公升級完成的差不多了,為什麼我們的主角aop還沒登場呢?

在這裡就不得不提下oop和aop的區別了,我的理解很簡單,oop就是至上而下的擴充套件,aop就是橫向擴充套件,這麼說你們可能不理解,畫個圖給你們你們就明白了

可能有些人會說我把aop拉直不就是oop了嗎?我只能說,槓精,求放過。

好的。我們不理槓精,繼續。我們spring使用aop是怎麼一回事呢?為什麼說springaop強大呢?

給你們介紹幾個專業點的概念,面試顯得牛頭啤酒點。

"a" class

="com.wq.a"

>

bean

>

"before"

class

="com.wq.e"

>

bean

>

"after"

class

="com.wq.f"

>

bean

>

<

aop:config

>

<

aop:pointcutid=

"test"

expression

="com.wq.a.test()"

/>

<

aop:before

pointcut-ref

="before"

method

="before"

/>

<

aop:after

pointcut-ref

="after"

method

="after"

/>

aop:config

>

以前一開始學的時候,aop,aop就知道是用來做橫向日誌,根本就不知道是什麼東西。果然二刷能變強,aop其實主要就是用來**公升級的,只是他區別於我們常用的oop,至上而下的程式設計,可以用橫向擴充套件的方式來對**進行公升級維護。

杭電OJ刷題系列 二

目錄 2039.三角形 1720.a b coming 1062.text reverse 2104.hide handkerchief 1064.financial management 2734.quicksum 1170.balloon comes 1197.specialized four ...

二叉樹刷題系列( )

本篇文章leetcode題目刷二叉樹的題關鍵在於框架,本質上我們得摸清楚遍歷的情況。在做二叉樹的時候,重點考慮兩個方面。第一,以什麼順序進行遍歷,無非就是前序 後序 中序 層序次序上的變種。對於遞迴函式的呼叫,我們嚴格按照函式給出定義去構建。不需要每次過分糾結在一層層遞迴中,把自己搞暈。因此,遞迴框...

C 刷題 leetcode貪心系列 二

給定乙個區間的集合,找到需要移除區間的最小數量,使剩餘區間互不重疊。注意 可以認為區間的終點總是大於它的起點。區間 1,2 和 2,3 的邊界相互 接觸 但沒有相互重疊。示例 1 輸入 1,2 2,3 3,4 1,3 輸出 1 解釋 移除 1,3 後,剩下的區間沒有重疊。示例 2 輸入 1,2 1,...