AspectJ 使用經驗集錦(不斷更新)

AspectJ 使用經驗集錦(不斷更新)

在Eclipse中有AspectJ的開發的相應插件,大家可以去官網上下載並安裝。
Eclipse3.2中直接安裝或升級此插件的地址如下:http://download.eclipse.org/tools/ajdt/32/update
其他版本的自己去官網上看對應的網址吧,在這里就不一一列出了。
以下討論都會結合Eclipse+AspectJ+其它Eclipse插件的環境來講述。

1、將非AspectJ工程轉換為AspectJ工程
AspectJ插件給我們提供了十分方便的工具,用來完成這一需求。
在項目上單擊右鍵,上下文菜單中有一項“AspectJ Tools”->“Convert AspectJ Project”,十分簡單吧。
轉換後項目屬性中的“Builders”中原有的“Java Builder”會改為“AspectJ Builder”。
這個建置器會比沒有使用AspectJ之前慢,如果項目較大的話,可以先不用AspectJ的編譯方式(當然去掉這個的方式應該是不會影響你的工程正常運行的),所以有對應的“Remove AspectJ Capability”功能。

2、解決 XLint:adviceDidNotMatch 問題
當我第一次遇到這個問題時去百度了一下,可以沒有結果,接著我又Google了一下,結果出來了。
並且找到了我想要的答案,參見網址:http://www.mail-archive.com/[email protected]/msg00583.html
其中有這樣一段:

Try :

pointcut initConnectionPool(SysServiceab
le services, String dbID) : call(com.primavera.infr.db.DBConnectionPool.
new (SysServiceable, String))  &&  args(services, dbID);

This assumes of course that your code really does call that constructor. 
注意最後面的那句話。
根據此類推的話,應該是說要確定你的連接點的方法被調用過,否則就會出現上面的錯誤。

常常會出現下面這樣的錯誤提示:
advice defined in asp.HintingAspect has not been applied[Xlint : adviceDidNotMatch] 
這說明:你的連接點跟類裏面的代碼不匹配.

你可能感兴趣的:(AspectJ 使用經驗集錦(不斷更新))