隨筆-9  評(píng)論-168  文章-266  trackbacks-0
                在典型的面向?qū)ο蟮拈_發(fā)方式中,可能要將日志記錄語句放在所有方法和JAVA類中才能實(shí)現(xiàn)日志功能.  在AOP方式中,可以反過來將日志服務(wù)模塊化,并以聲明的方式將它們應(yīng)用到需要日志的組件上.
                 AOP的功能完全集成到了SPRING事務(wù)管理,日志和其他各種特性的上下文中.

          連接點(diǎn)(join points):在計(jì)算機(jī)科學(xué)中,“連接點(diǎn)”是連接程序中“控制流程(control flow)”的點(diǎn)。在面向方面的編程中,一系列的連接點(diǎn)集合被描述為“切入點(diǎn)”。連接點(diǎn)是主程序和“方面”的相會(huì)之處。在面向?qū)ο笳Z言中,連接點(diǎn)是程序執(zhí)行中定義良好的點(diǎn)。這些點(diǎn)包括方法和構(gòu)造函數(shù)的調(diào)用、字段訪問以等等內(nèi)容
          切入點(diǎn)(pointcut):在面向方面計(jì)算機(jī)編程中,切入點(diǎn)是一系列連接點(diǎn)的集合。當(dāng)程序執(zhí)行到切入點(diǎn)所描述的其中一個(gè)連接點(diǎn)時(shí),與這個(gè)切入點(diǎn)相關(guān)的代碼片(被稱為通知)就會(huì)被執(zhí)行。這就使得一個(gè)程序員可以描述“何處”以及“何時(shí)”在已定義的行為之外去執(zhí)行附加的代碼。這樣就能向已經(jīng)存在的軟件增加新的方面(aspects),或者是軟件的設(shè)計(jì)帶有清晰的“關(guān)注分離(separation of concerns)”的特點(diǎn),從而使編程者將不同的方面融入到一個(gè)完整的應(yīng)用中。
          通知(advice): 在面向方面計(jì)算機(jī)編程中,一片“通知”描述用于應(yīng)用于程序中給定連接點(diǎn)的一個(gè)函數(shù)(function)、方法(method)和過程(procedure) 。

          連接點(diǎn)模型(Join point models)


          面向方面語言中與通知相關(guān)的組件定義了一個(gè)連接點(diǎn)模型(join point model-JPM),JPM定義了三件事情:

          何時(shí)(advice)通知可以運(yùn)行。之所以叫連接點(diǎn)(join points)是因?yàn)樗鼈兪钦谶\(yùn)行程序中那些附加行為可以被有效接入的點(diǎn)。為了使之可用,連接點(diǎn)需要被普通程序員所表達(dá)和理解。(為了使應(yīng)用的某個(gè)方面在跨越不連貫的變化時(shí)保持穩(wěn)定,連接點(diǎn)應(yīng)當(dāng)在跨越這些變化時(shí)穩(wěn)定
          一種指定(或者量化)連接點(diǎn)的方法,稱之為“切入點(diǎn)”。切入點(diǎn)決定一個(gè)給定的連接點(diǎn)是否匹配。大多數(shù)有效的切入點(diǎn)語言使用類似基礎(chǔ)語言的語法(例如,AspectJ 使用java符號(hào)),并且允許通過命名和組合來實(shí)現(xiàn)(切入點(diǎn))重用(reuse)。
          一種指定代碼在連接點(diǎn)處運(yùn)行的方法。在AspectJ中,被稱為通知(advice),并且能夠在連接點(diǎn)之前、之后或者包圍連接點(diǎn)運(yùn)行。

          AOP編程的適用領(lǐng)域


          Authentication 權(quán)限
          Caching 緩存
          Context passing 內(nèi)容傳遞
          Error handling 錯(cuò)誤處理
          Lazy loading 懶加載
          Debugging  調(diào)試
          logging, tracing, profiling and monitoring 記錄跟蹤 優(yōu)化 校準(zhǔn)
          Performance optimization 性能優(yōu)化
          Persistence  持久化
          Resource pooling 資源池
          Synchronization 同步
          Transactions 事務(wù)
          posted on 2007-11-01 15:32 紫蝶∏飛揚(yáng)↗ 閱讀(457) 評(píng)論(0)  編輯  收藏 所屬分類: Spring
          主站蜘蛛池模板: 莎车县| 崇信县| 唐河县| 遵义县| 德江县| 曲阜市| 卢龙县| 皮山县| 阿城市| 阿坝县| 德令哈市| 新绛县| 固安县| 河津市| 保定市| 枣阳市| 修武县| 芜湖县| 门头沟区| 天气| 怀安县| 张家川| 当雄县| 安顺市| 金华市| 海原县| 永德县| 青浦区| 会东县| 怀集县| 永清县| 洪泽县| 岳阳市| 尉犁县| 迁西县| 宝应县| 桐庐县| 金华市| 双城市| 巴林左旗| 漯河市|