什么是Spring AOP屠升?

雖然AOP不經(jīng)常討論,但它在Spring中被廣泛使用誉尖。也許是時候你熟悉AOP以及如何使它適合你。
對Spring AOP了解多少铸题?您是否在當前的Spring Boot項目中使用它铡恕?如果沒有,這是給你的丢间!

如今探熔,我看到很多項目都使用了Spring Boot和其他尖端框架中的所有最新技術(shù)。一方面烘挫,這聽起來很有希望诀艰,但另一方面,我經(jīng)骋看到開發(fā)人員沒有充分利用他們面前的技術(shù)其垄。

我認為這主要是因為大多數(shù)書籍和文檔過于學術(shù)化且難以理解。這就是我決定談談面向方面編程的原因卤橄。

什么是面向方面編程(AOP)绿满?

面向方面的編程是一種編程范式,試圖解決跨領(lǐng)域關(guān)注的問題窟扑。面向方面編程(AOP)通過提供考慮程序結(jié)構(gòu)的不同方式來補充面向?qū)ο缶幊蹋?strong>OOP)喇颁。

OOP中模塊化的關(guān)鍵單元是類; 而在AOP中,模塊化的單位是方面嚎货。

換句話說橘霎,它有助于我們將不同的必要重復代碼重構(gòu)為不同的模塊。這給了我們的好處殖属,我們可以在一個地方保持這些功能姐叁,而不是每次都寫下來。

這種方法將產(chǎn)生更易于維護的代碼忱辅,從而將業(yè)務邏輯從最混亂的因素中清除七蜘。我們將這些功能分為不同的方面。

一個方面是跨越多個類別的關(guān)注點的模塊化墙懂。統(tǒng)一日志記錄或事務管理就是一個很好的例子状原。

使用AOP簡化代碼

讓我們看看下面給出的代碼示例。

image.png

在這里什黑,您可以識別出幾個與業(yè)務邏輯本身無關(guān)的不同問題。我們應該把它們分成另一個地方柜与。從此以后,只剩下業(yè)務邏輯了嵌灰。

image.png

AOP如何大規(guī)模運作

如果您的系統(tǒng)包含多個不與AOP一起使用的包和類弄匕,例如跟蹤,事務和異常處理沽瞭,我們必須在每個類和每個方法中實現(xiàn)它們迁匠。

這導致兩個問題:

  • 代碼糾結(jié): - 每個類和方法都包含跟蹤,事務和異常處理 - 甚至是業(yè)務邏輯驹溃。在糾結(jié)的代碼中城丧,通常很難看到方法中實際發(fā)生了什么。
  • 代碼散布 - 事務等方面分散在整個代碼中豌鹤,而不是在系統(tǒng)的單個特定部分中實現(xiàn)亡哄。
image.png

使用AOP可以解決這些問題。因此布疙,AOP所做的是它需要所有事務代碼并將其置于事務方面蚊惯。然后,它將獲取所有跟蹤代碼并將其放入一個方面灵临。最后截型,異常處理被放入一個方面。

之后儒溉,業(yè)務邏輯和所有其他方面之間將會有一個清晰的分離菠劝。

image.png

跨領(lǐng)域的關(guān)切

AOP中的一個重要概念是 跨領(lǐng)域的問題。上面睁搭,我展示了一些跟蹤赶诊,異常處理和事務的例子,這些都是跨領(lǐng)域的問題园骆。有幾個類和方法必須實現(xiàn)它們舔痪。

在經(jīng)典的面向?qū)ο缶幊讨校鼈儾荒茉谝粋€地方實現(xiàn)锌唾,因此您將無法避免散射和代碼糾纏锄码。

面向方面的編程允許您在一個集中的位置實現(xiàn)橫切關(guān)注點。因此晌涕,如果您使用AOP滋捶,它的工作方式是您首先實現(xiàn)您的業(yè)務邏輯,然后為您的跨領(lǐng)域問題騎行余黎。

這樣重窟,您可以編寫基礎結(jié)構(gòu)并選擇是否要添加事務或記錄到代碼中。因此惧财,您可以創(chuàng)建自己的個性化自定義中間件巡扇。然后扭仁,使用Spring AOP將方面添加到應用程序中,以便在運行時實際執(zhí)行方面以及主線業(yè)務邏輯厅翔。

什么是春天AOP乖坠?

如果你查看我關(guān)于Spring框架的文章,你會發(fā)現(xiàn)它是Spring的核心構(gòu)建模塊之一刀闷。

它通過消除代碼糾纏和交叉問題熊泵,在我們的項目中支持面向方面的模塊化。將Spring AOP庫添加到我們的項目中甸昏,您可以開始獲得它包含的幾個不同工具的優(yōu)勢戈次。

這可以用于諸如 注釋,建議筒扒,連接點和切入點之類的工具。這些是圖書館最重要的基礎绊寻。

通常花墩,您使用AOP來實現(xiàn)使Spring框架更有用的企業(yè)功能。

AOP允許您準確定義要集成您定義的特定方面的位置澄步。因此冰蘑,您將獲得可配置的中間件。如果您想了解有關(guān)Spring AOP的更多信息村缸,請繼續(xù)關(guān)注即將發(fā)表的文章或訪問此 網(wǎng)站祠肥。

摘要

在本文中,我試圖闡明面向方面編程的概念梯皿,并向您介紹它與Spring框架的關(guān)系仇箱。在我即將發(fā)表的文章中,我將深入探討Spring AOP庫东羹,它的主要基石是什么剂桥,以及如何使用它希望我能提供幫助!請在下面的評論中告訴我們您的想法属提,不要忘記分享权逗!
來源:https://dzone.com/articles/what-is-spring-aop-1

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市冤议,隨后出現(xiàn)的幾起案子斟薇,更是在濱河造成了極大的恐慌,老刑警劉巖恕酸,帶你破解...
    沈念sama閱讀 217,542評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件堪滨,死亡現(xiàn)場離奇詭異,居然都是意外死亡蕊温,警方通過查閱死者的電腦和手機椿猎,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評論 3 394
  • 文/潘曉璐 我一進店門惶岭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人犯眠,你說我怎么就攤上這事按灶。” “怎么了筐咧?”我有些...
    開封第一講書人閱讀 163,912評論 0 354
  • 文/不壞的土叔 我叫張陵鸯旁,是天一觀的道長。 經(jīng)常有香客問我量蕊,道長铺罢,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,449評論 1 293
  • 正文 為了忘掉前任残炮,我火速辦了婚禮韭赘,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘势就。我一直安慰自己泉瞻,他們只是感情好,可當我...
    茶點故事閱讀 67,500評論 6 392
  • 文/花漫 我一把揭開白布苞冯。 她就那樣靜靜地躺著袖牙,像睡著了一般。 火紅的嫁衣襯著肌膚如雪舅锄。 梳的紋絲不亂的頭發(fā)上鞭达,一...
    開封第一講書人閱讀 51,370評論 1 302
  • 那天,我揣著相機與錄音皇忿,去河邊找鬼畴蹭。 笑死,一個胖子當著我的面吹牛鳍烁,可吹牛的內(nèi)容都是我干的撮胧。 我是一名探鬼主播,決...
    沈念sama閱讀 40,193評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼老翘,長吁一口氣:“原來是場噩夢啊……” “哼芹啥!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起铺峭,我...
    開封第一講書人閱讀 39,074評論 0 276
  • 序言:老撾萬榮一對情侶失蹤墓怀,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后卫键,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體傀履,經(jīng)...
    沈念sama閱讀 45,505評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,722評論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了钓账。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片碴犬。...
    茶點故事閱讀 39,841評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖梆暮,靈堂內(nèi)的尸體忽然破棺而出服协,到底是詐尸還是另有隱情,我是刑警寧澤啦粹,帶...
    沈念sama閱讀 35,569評論 5 345
  • 正文 年R本政府宣布偿荷,位于F島的核電站,受9級特大地震影響唠椭,放射性物質(zhì)發(fā)生泄漏跳纳。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,168評論 3 328
  • 文/蒙蒙 一贪嫂、第九天 我趴在偏房一處隱蔽的房頂上張望寺庄。 院中可真熱鬧,春花似錦力崇、人聲如沸斗塘。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至敌厘,卻和暖如春台猴,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背俱两。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評論 1 269
  • 我被黑心中介騙來泰國打工饱狂, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人宪彩。 一個月前我還...
    沈念sama閱讀 47,962評論 2 370
  • 正文 我出身青樓休讳,卻偏偏與公主長得像,于是被迫代替她去往敵國和親尿孔。 傳聞我的和親對象是個殘疾皇子俊柔,可洞房花燭夜當晚...
    茶點故事閱讀 44,781評論 2 354

推薦閱讀更多精彩內(nèi)容