在Eclipse中有AspectJ的開發(fā)的相應(yīng)插件,大家可以去官網(wǎng)上下載並安裝。
Eclipse3.2中直接安裝或升級此插件的地址如下:http://download.eclipse.org/tools/ajdt/32/update
其他版本的自己去官網(wǎng)上看對應(yīng)的網(wǎng)址吧,在這里就不一一列出了。
以下討論都會(huì)結(jié)合Eclipse+AspectJ+其它Eclipse插件的環(huán)境來講述。
1、將非AspectJ工程轉(zhuǎn)換為AspectJ工程
AspectJ插件給我們提供了十分方便的工具,用來完成這一需求。
在項(xiàng)目上單擊右鍵,上下文菜單中有一項(xiàng)“AspectJ Tools”->“Convert AspectJ Project”,十分簡單吧。
轉(zhuǎn)換後項(xiàng)目屬性中的“Builders”中原有的“Java Builder”會(huì)改為“AspectJ Builder”。
這個(gè)建置器會(huì)比沒有使用AspectJ之前慢,如果項(xiàng)目較大的話,可以先不用AspectJ的編譯方式(當(dāng)然去掉這個(gè)的方式應(yīng)該是不會(huì)影響你的工程正常運(yùn)行的),所以有對應(yīng)的“Remove AspectJ Capability”功能。
2、解決 XLint:adviceDidNotMatch 問題
當(dāng)我第一次遇到這個(gè)問題時(shí)去百度了一下,可以沒有結(jié)果,接著我又Google了一下,結(jié)果出來了。
並且找到了我想要的答案,參見網(wǎng)址:http://www.mail-archive.com/aspectj-users@eclipse.org/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.
注意最後面的那句話。
根據(jù)此類推的話,應(yīng)該是說要確定你的連接點(diǎn)的方法被調(diào)用過,否則就會(huì)出現(xiàn)上面的錯(cuò)誤。
常常會(huì)出現(xiàn)下面這樣的錯(cuò)誤提示:
advice defined in asp.HintingAspect has not been applied[Xlint : adviceDidNotMatch]
這說明:你的連接點(diǎn)跟類裏面的代碼不匹配.
posted on 2006-12-18 13:55
Robin's Programming World 閱讀(2994)
評論(0) 編輯 收藏 所屬分類:
Java