基于Java的简单、动态、轻量级、强大的AOP框架。既强大又简单,有助于更容易的集成AOP到新的或已存在的项目中。AspectWerkz 主要特性有: 1. 运行时和加载时字节码修正:你可以在运行时或编译时轻松的改造任何(旧)应用程序或除了rt.jar以外的外部类库 2. 支持join point模型 3. 支持Annotation:匹配JavaDoc和JSR-175,支持用户自定义Annotation 4. 支持部署多个Aspect定义文件到部署的应用程序(WEB-INF/aop.xml、META-INF/aop.xml) 5. Introduction/内类型声明(也称Mixin),也就是具有添加接口和实现到已存在的类中的能力 6. Annotation定义:定义Aspect使用的运行时Annotation(为JSR-175准备) 7. XML定义:定义Aspect使用的XML;XML可以用来精炼、改写和解析Annotation定义 8. 插件式Aspect管理器能够和IoC框架(如Spring或PicoContainer)一起工作 9. 四种不同的Advice和Introduction部署模型(范围):perJVM(单模式)、 perClass、perInstance 和perThread 10. Advice和Introduction能够动态部署、反部署或重新部署 11. 高性能,使用JIT编译 12. 使用Fine-grained模式语言选择join point 13. 所有Advice能够和所有的join point和各种混合类型的pointcut 14. 脱机变换(可以用作后处理器) 15. Aspect、Advice和Introduction使用POJO编码 16. 目标类可以是正规的POJO,也就是不需要接口 17. 支持通过定义传递参数给Advice和定义可重用的Advice堆栈 18. 元数据被加到类中 19. 简单的用法和配置