轉(zhuǎn)載請(qǐng)標(biāo)明出處http://www.cnblogs.com/yxx123/p/6665736.html
參考:深入理解Android之AOP

AOP雖然是方法論,但就好像OOP中的Java一樣,一些先行者也開發(fā)了一套語言來支持AOP。目前用得比較火的就是AspectJ了,它是一種幾乎和Java完全一樣的語言,而且完全兼容Java(AspectJ應(yīng)該就是一種擴(kuò)展Java,但它不是像Groovy[1]那樣的拓展。)。當(dāng)然,除了使用AspectJ特殊的語言外,AspectJ還支持原生的Java,只要加上對(duì)應(yīng)的AspectJ注解就好。所以,使用AspectJ有兩種方法:

  • 完全使用AspectJ的語言。這語言一點(diǎn)也不難,和Java幾乎一樣,也能在AspectJ中調(diào)用Java的任何類庫。AspectJ只是多了一些關(guān)鍵詞罷了。

  • 或者使用純Java語言開發(fā),然后使用AspectJ注解,簡(jiǎn)稱*@AspectJ*。

AspectJ的配置可以參考另一篇文章Android中使用AspectJ

Join Points介紹

Join Points是AspectJ中的一個(gè)關(guān)鍵概念。Join Points可以看作是程序運(yùn)行時(shí)的一個(gè)執(zhí)行點(diǎn),比如:一個(gè)函數(shù)的調(diào)用可以看作是個(gè)Join Points,如Log.e()這個(gè)函數(shù),e()可以看作是個(gè)Join Points,而調(diào)運(yùn)e()的函數(shù)也可以認(rèn)為是一個(gè)Join Points;設(shè)置一個(gè)變量,或者讀取一個(gè)變量也可以是個(gè)Join Points;for循環(huán)也可以看作是Join Points。

理論上說,一個(gè)程序中很多地方都可以被看做是Join Points,但是AspectJ中,只有下面所示的幾種執(zhí)行點(diǎn)被認(rèn)為是Join Points:

Join Points說明示例
method call函數(shù)調(diào)用

延伸閱讀

學(xué)習(xí)是年輕人改變自己的最好方式-Java培訓(xùn),做最負(fù)責(zé)任的教育,學(xué)習(xí)改變命運(yùn),軟件學(xué)習(xí),再就業(yè),大學(xué)生如何就業(yè),幫大學(xué)生找到好工作,lphotoshop培訓(xùn),電腦培訓(xùn),電腦維修培訓(xùn),移動(dòng)軟件開發(fā)培訓(xùn),網(wǎng)站設(shè)計(jì)培訓(xùn),網(wǎng)站建設(shè)培訓(xùn)學(xué)習(xí)是年輕人改變自己的最好方式

我想了解如何學(xué)習(xí)

姓名:
手機(jī):
留言: