在典型的面向對象的開發方式中,可能要將日志記錄語句放在所有方法和JAVA類中才能實現日志功能. 在AOP方式中,可以反過來將日志服務
模塊化,并以聲明的方式將它們應用到需要日志的組件上.
AOP的功能完全集成到了SPRING事務管理,日志和其他各種特性的上下文中.
連接點(join points):在計算機科學中,“連接點”是連接程序中“控制流程(control flow)”的點。在面向方面的編程中,一系列的連接點集合被描述為“切入點”。連接點是主程序和“方面”的相會之處。在面向對象語言中,連接點是程序執行中定義良好的點。這些點包括方法和構造函數的調用、字段訪問以等等內容
切入點(pointcut):在面向方面計算機編程中,切入點是一系列連接點的集合。當程序執行到切入點所描述的其中一個連接點時,與這個切入點相關的代碼片(被稱為通知)就會被執行。這就使得一個程序員可以描述“何處”以及“何時”在已定義的行為之外去執行附加的代碼。這樣就能向已經存在的軟件增加新的方面(aspects),或者是軟件的設計帶有清晰的“關注分離(separation of concerns)”的特點,從而使編程者將不同的方面融入到一個完整的應用中。
通知(advice): 在面向方面計算機編程中,一片“通知”描述用于應用于程序中給定連接點的一個函數(function)、方法(method)和過程(procedure) 。
連接點模型(Join point models)
面向方面語言中與通知相關的組件定義了一個連接點模型(join point model-JPM),JPM定義了三件事情:
何時(advice)通知可以運行。之所以叫連接點(join points)是因為它們是正在運行程序中那些附加行為可以被有效接入的點。為了使之可用,連接點需要被普通程序員所表達和理解。(為了使應用的某個方面在跨越不連貫的變化時保持穩定,連接點應當在跨越這些變化時穩定
一種指定(或者量化)連接點的方法,稱之為“切入點”。切入點決定一個給定的連接點是否匹配。大多數有效的切入點語言使用類似基礎語言的語法(例如,AspectJ 使用java符號),并且允許通過命名和組合來實現(切入點)重用(reuse)。
一種指定代碼在連接點處運行的方法。在AspectJ中,被稱為通知(advice),并且能夠在連接點之前、之后或者包圍連接點運行。
AOP編程的適用領域
Authentication 權限
Caching 緩存
Context passing 內容傳遞
Error handling 錯誤處理
Lazy loading 懶加載
Debugging 調試
logging, tracing, profiling and monitoring 記錄跟蹤 優化 校準
Performance optimization 性能優化
Persistence 持久化
Resource pooling 資源池
Synchronization 同步
Transactions 事務
posted on 2007-11-01 15:32
紫蝶∏飛揚↗ 閱讀(450)
評論(0) 編輯 收藏 所屬分類:
Spring