面向方面编程AOP详解:术语、关键技术与织入
需积分: 1 198 浏览量
更新于2024-09-19
收藏 123KB DOC 举报
"AOP技术总结 2"
AOP(Aspect Oriented Programming)是面向方面编程,它由Xerox PARC的研究者在20世纪90年代提出,旨在解决传统编程中横切关注点与核心关注点混合的问题。AOP的核心在于将业务逻辑与通用服务,如日志、事务管理、安全等,进行分离,使得代码更易于维护和扩展。通过使用AOP,开发者可以创建被称为方面的独立模块来处理这些横切关注点。
1.1 AOP术语详解
1. **关注点(Concern)**: 关注点是软件系统中任何我们关心的功能或问题领域。比如,信用卡系统的核心关注点是交易处理,而系统级别的关注点则包括日志记录、事务管理、安全性等。AOP将系统级关注点称为横切关注点,因为它们会“横切”多个核心功能。
2. **连接点(Joinpoint)**: 连接点是程序执行中的特定点,可能是方法调用、对象构造或销毁等。它们是系统内在的、无需显式声明的点。连接点的选择和作用由切入点决定。
3. **切入点(Pointcut)**: 切入点是用于定义哪些连接点将被横切代码影响的规则。它是连接点的子集,通常由一个切入点表达式定义,该表达式可以是方法名、类名或其他条件,用于精确匹配连接点。
4. **通知(Advice)**: 通知是在满足切入点的连接点上执行的代码,即横切行为。它可以是前通知(在连接点之前执行)、后通知(之后执行)、环绕通知(包围整个连接点)等,实现了横切关注点的具体逻辑。
AOP的实现关键在于**织入(Weaving)**,即如何将方面的代码整合到目标程序中。织入可以在编译时、类加载时或运行时完成。不同织入时机有不同的优缺点,例如编译时织入能提高运行效率,但可能需要特殊的编译器支持;运行时织入则更灵活,但可能会牺牲一些性能。
织入方式主要包括:
- **编译时织入**: 通过源码转换或字节码操作在编译阶段将方面与目标代码结合。
- **类装载时织入**: 在类装载到JVM时进行织入,通常通过代理类实现。
- **运行时织入**: 在程序运行期间动态地将方面织入,通常使用动态代理实现。
AOP技术的应用广泛,如Spring框架中的AOP支持,使得开发者可以方便地实现日志记录、事务管理等横切关注点,而不必将它们硬编码到业务逻辑中。这不仅提高了代码的可读性和可维护性,也促进了代码的重用,降低了系统的复杂度。
2019-04-06 上传
2023-08-26 上传
2023-07-28 上传
2023-09-19 上传
2023-08-20 上传
2023-07-28 上传
2023-07-16 上传
2023-07-27 上传
2023-08-05 上传
wancanjun
- 粉丝: 1
- 资源: 266
最新资源
- 明日知道社区问答系统设计与实现-SSM框架java源码分享
- Unity3D粒子特效包:闪电效果体验报告
- Windows64位Python3.7安装Twisted库指南
- HTMLJS应用程序:多词典阿拉伯语词根检索
- 光纤通信课后习题答案解析及文件资源
- swdogen: 自动扫描源码生成 Swagger 文档的工具
- GD32F10系列芯片Keil IDE下载算法配置指南
- C++实现Emscripten版本的3D俄罗斯方块游戏
- 期末复习必备:全面数据结构课件资料
- WordPress媒体占位符插件:优化开发中的图像占位体验
- 完整扑克牌资源集-55张图片压缩包下载
- 开发轻量级时事通讯活动管理RESTful应用程序
- 长城特固618对讲机写频软件使用指南
- Memry粤语学习工具:开源应用助力记忆提升
- JMC 8.0.0版本发布,支持JDK 1.8及64位系统
- Python看图猜成语游戏源码发布