AOP是一個概念,并沒有設定具體語言的實現,它能克服那些只有單繼承特性語言的缺點(如Java),將 AOP 用于多數大型系統或關鍵的生產系統還不完全成熟,但是隨著語言支持的提高,AOP 的應用將更容易。另外,提高支持也是新的軟件開發范例,例如利用面向方面的編程的軟件工廠。目前有幾種可用的 AOP 框架,每個框架都有其自己的方法、正面屬性和負面屬性。 目前AOP具體實現有以下幾個項目:
•AspectJ (TM) : 創建于Xerox PARC. 有近十年歷史,成熟
缺點:過于復雜;破壞封裝;需要專門的Java編譯器。
•動態AOP:使用JDK的動態代理API或字節碼Bytecode處理技術。
基于動態代理API的具體項目有:
JBoss 4.0 JBoss 4.0服務器
JAC (Java Aspect Components) — 是一個應用服務器。它為Java2平臺、用于Java開發的企業開發環境(J2EE)、和基于Web的分布式應用,提供開放式資源的又一個選擇(在GNU次常規公共許可證下發布)。JAC包括統一模型語言(UML)IDE,該UML IDE模塊化應用商業邏輯并且自動生成和編譯純商業邏輯Java類。這些類,在JAC容器內執行,可從一組技術和/或商業的橫切關系(crosscutting concerns)如:數據持久性、認證、配置文件管理、訪問權限檢測、演示、和負載平衡中無縫地受益;诿嫦蚍矫婢幊碳夹g(AOP)的JAC將這些關系( concerns)從應用程序的核心商業邏輯中分離出來。
nanning 這是以中國南寧命名的一個項目,搞不清楚為什么和中國相關?是中國人發起的?
•基于字節碼的項目有:
aspectwerkz — 基于Java的簡單、動態、輕量級、強大的AOP框架。既強大又簡單,有助于更容易的集成AOP到新的或已存在的項目中。
spring
Spring.NET — 流行的 Java Spring 框架的一個 .NET 版本。在下一個版本中將實現 AOP。
• DynamicAspects — 能夠讓你使用java編寫的面向切面的程序設計,它使用在Sun JDK 1.5中介的"instrumentation"與"agent",Aspects能夠軟件各模塊之間的關系在運行期安裝與使用。
• dynaop框架 — 使用一個基于運行時的編程機制將AOP代碼插入對象中,而不是返回一個具有特征代碼的對象。AOP將是面向對象設計(OO)的一個新的領域。
• CAESAR — 是一個新的與Java兼容的AOP語言。所有java程序多能使用CAESAR。
文章來源于領測軟件測試網 http://www.kjueaiud.com/