AspectJ的实现机制
此文摘自IBM developerWorks
原文請看:What is AspectJ
使用AspectJ,我們不用對原有的代碼做任何修改,就可以為代碼提供不同的Aspect(方面)--比如,認證,事務等。
我們只需要提供兩個不同的Aspect--認證Aspect和事務Aspect。
| Code 4.1 AuthAspect.javaAuthAspect{bankMethods() : (* Bank.deposit(…)) || (* Bank. withdraw (…));Object (): bankMethods(){// 驗證account是否為合法用戶();} };Code 4.2 TransactionAspect.javaTransactionAspect{bankMethods() : (* Bank.deposit(…)) || (* Bank. withdraw (…));Object (): bankMethods(){// Begin TransactionObject result = ();// End Transactionresult;} }; |
如果您暫時不能理解這段代碼,沒有關系,后面會講到,這些aspect的定義,不過是定義了一些代碼生成規則。
我們用AspectJ編譯器編譯Bank文件和含有aspect的這個文件,出來的結果就是帶有安全認證和事務處理的Bank類。編譯出來的這個Bank類調用了AspectJ Runtime Lib,所以,如果你要運行這個Bank類,你需要把AspectJ Runtime Lib設置在你的classpath里面。
我們來看看,AspectJ編譯器為我們做了什么事情。
如何驗證這一點?您可以到http://www.eclipse.org/aspectj/下載安裝AspectJ,編譯里面的Sample,把編譯結果反編譯一下,就可以看到AspetJ自動生成的代碼。
我們看到,AspectJ是一種代碼自動生成工具。你編寫一段通用的代碼,比如認證方面的代碼,事務方面的代碼,然后根據AspectJ語法定義一套代碼生成規則(aspect定義),AspectJ就會幫助你自動把這段通用代碼分布到對應的代碼里面去,簡單快捷,算無遺策。
轉載于:https://www.cnblogs.com/na57/archive/2005/01/26/97619.html
總結
以上是生活随笔為你收集整理的AspectJ的实现机制的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 小叮咚切分词方法加入sourceforg
- 下一篇: 兴趣记忆法(1)顺口溜记忆