日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網(wǎng)為廣大站長(zhǎng)提供免費(fèi)收錄網(wǎng)站服務(wù),提交前請(qǐng)做好本站友鏈:【 網(wǎng)站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(wù)(50元/站),

點(diǎn)擊這里在線咨詢(xún)客服
新站提交
  • 網(wǎng)站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會(huì)員:747

本文介紹了Java:Spring AOP&∧重構(gòu)的處理方法,對(duì)大家解決問(wèn)題具有一定的參考價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)吧!

問(wèn)題描述

所以我開(kāi)始使用Spring AOP,我突然想到了一些事情。配置方面時(shí),所有批注都使用字符串作為參數(shù),而不是使用類(lèi)對(duì)象。

我之所以提出這個(gè)問(wèn)題,是因?yàn)檫@意味著IDE(我使用的是Eclipse,所以我在這里只引用它)將不能正確地重構(gòu)方面。因此,如果我有一個(gè)MyClass類(lèi),它的方法是公共的void Foo(),則Spring AOP批注的示例如下:

@Before ("execution(public void package.MyClass.foo())")

因?yàn)榕⒅械膮?shù)是一個(gè)字符串,所以如果我將方法名重構(gòu)為公共void foo2(),它將破壞此方面的綁定。

我一直在搜索各種論壇和教程,但無(wú)論在哪里我都只能看到字符串參數(shù),這表明這是唯一的選擇。我想您可以通過(guò)在聲明綁定的方式上更通用一點(diǎn)來(lái)解決這個(gè)問(wèn)題:

@Before ("exeuction(public void package.MyClass.set*(..))")

這個(gè)新方法適用于MyClass中的任何setter方法,具有任意數(shù)量的參數(shù)(或沒(méi)有參數(shù))。當(dāng)然,像這樣含糊其辭可能并不總是奏效。

無(wú)論如何,我在這里有點(diǎn)咆哮,很晚了,我有點(diǎn)累了,我的大腦因?yàn)閷ふ掖鸢付钇AΡM。但我的最后一個(gè)問(wèn)題是:有沒(méi)有辦法設(shè)置Spring AOP注釋?zhuān)员阒貥?gòu)可以影響它們?

謝謝。

AOP

推薦答案的全部要點(diǎn)是以模塊化的方式實(shí)現(xiàn)橫切行為,并將其應(yīng)用于理想情況下不知道任何方面的應(yīng)用程序代碼。因此,您在兩者之間沒(méi)有固定的連接。重要的是要記住,在維護(hù)和重構(gòu)應(yīng)用程序代碼的同時(shí),您還應(yīng)該用它重構(gòu)方面,以確保切入點(diǎn)不會(huì)中斷。

話(huà)雖如此,如果您安裝AJDT(AspectJ開(kāi)發(fā)工具),Eclipse和其他IDE仍然會(huì)提示您應(yīng)用哪些方面。我主要使用完整的AspectJ,而不是稱(chēng)為Spring AOP的基于代理的”AOP lite”變體,所以我不知道AJDT對(duì)Spring AOP是否有用。不過(guò),它將通過(guò)LTW(加載時(shí)編織)將AspectJ應(yīng)用于Spring。

這里是“方面可視化”視角的屏幕截圖

它以圖形方式顯示哪些方面適用于代碼的哪些部分。如果您雙擊任何虛線,代碼編輯器將引導(dǎo)您到應(yīng)用方面的確切位置。

還有交叉引用視圖,在方面代碼和純Java代碼中有很少的指示符:

右側(cè)是交叉引用視圖,列出了應(yīng)用于當(dāng)前所選方法的所有方面。在左側(cè)有一些小圖標(biāo),指示適用于每種方法的建議類(lèi)型。

順便說(shuō)一句,交叉引用視圖也是從方面工作的。將光標(biāo)放在建議內(nèi)時(shí),外部參照視圖將列出代碼中應(yīng)用該建議的所有位置:

還有更多:AspectJ編譯器可以這樣配置,以列出方面代碼建議的所有連接點(diǎn)。您可以手動(dòng)檢查輸出更改,甚至可以在自動(dòng)煙霧測(cè)試中檢查更改。例如,如果因?yàn)槟牧艘恍┌㈩?lèi)或方法名稱(chēng)而導(dǎo)致建議不再適用,則會(huì)出現(xiàn)Xlint警告“AdviceDidNotMatch”和/或有時(shí)還會(huì)出現(xiàn)“validAboluteTypeName”。此外,有問(wèn)題的建議的交叉引用視圖將為空:

正如您剛才看到的,在重構(gòu)應(yīng)用程序或方面代碼時(shí),AJDT中有很多指示器和幫助器。

還有一件事:如果您使用AspectJ而不是Spring AOP,您可以選擇使用更簡(jiǎn)潔、更具表現(xiàn)力的原生AspectJ語(yǔ)法,而不是注釋樣式的語(yǔ)法。我肯定更喜歡前者而不是后者。然后,您的代碼編輯器中不僅有字符串,還有更好的語(yǔ)法突出顯示、代碼完成和重構(gòu)。

最后,但并非最不重要的一點(diǎn):您還應(yīng)該為方面代碼編寫(xiě)單元測(cè)試,也許還有集成測(cè)試,以便注意方面是否中斷。手動(dòng)檢查很好,但自動(dòng)回歸測(cè)試在即時(shí)反饋方面是無(wú)與倫比的。;-)

這篇關(guān)于Java:Spring AOP&∧重構(gòu)的文章就介紹到這了,希望我們推薦的答案對(duì)大家有所幫助,

分享到:
標(biāo)簽:amp AOP Java Spring 重構(gòu)
用戶(hù)無(wú)頭像

網(wǎng)友整理

注冊(cè)時(shí)間:

網(wǎng)站:5 個(gè)   小程序:0 個(gè)  文章:12 篇

  • 51998

    網(wǎng)站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會(huì)員

趕快注冊(cè)賬號(hào),推廣您的網(wǎng)站吧!
最新入駐小程序

數(shù)獨(dú)大挑戰(zhàn)2018-06-03

數(shù)獨(dú)一種數(shù)學(xué)游戲,玩家需要根據(jù)9

答題星2018-06-03

您可以通過(guò)答題星輕松地創(chuàng)建試卷

全階人生考試2018-06-03

各種考試題,題庫(kù),初中,高中,大學(xué)四六

運(yùn)動(dòng)步數(shù)有氧達(dá)人2018-06-03

記錄運(yùn)動(dòng)步數(shù),積累氧氣值。還可偷

每日養(yǎng)生app2018-06-03

每日養(yǎng)生,天天健康

體育訓(xùn)練成績(jī)?cè)u(píng)定2018-06-03

通用課目體育訓(xùn)練成績(jī)?cè)u(píng)定