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)如:数据持久性、认证、配置文件管理、访问权限检测、演示、和负载平衡中无缝地受益。基于面向方面编程技术(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。
文章来源于领测软件测试网 https://www.ltesting.net/