NC AOP:面向方面编程的包装与拦截详解
需积分: 50 86 浏览量
更新于2024-09-08
收藏 281KB DOC 举报
NC AOP (Aspect-Oriented Programming) 是一种编程范式,它允许在不修改原有组件代码的情况下,通过额外的“方面”(Aspect)增强组件的功能或对其进行拦截。在正确的组件部署后,当需要对组件的行为进行扩展或控制时,AOP提供了一种灵活的方式来组织和管理代码,避免了传统编程中重复和分散的代码。
**需求描述**:
当组件部署完毕后,使用AOP的主要目的是在不影响原始功能的基础上,通过“包装方面”(包装式增强)来添加额外的功能,或者通过“拦截方面”(通知式增强)来监控、修改或阻止特定方法的行为。这种方式确保了核心业务逻辑的清晰性,同时引入了模块化的辅助功能。
**相关术语**:
- **Aspect**:又称为切面,它是通知和切入点的组合,定义了何时何地以及如何应用通知。
- **Advice**:通知是方面的具体实现,代表了方面要完成的任务,如在方法调用前后执行操作,或在异常发生时执行补偿逻辑。NC系统支持五种类型的Advice:Before、Around、After、AfterReturning和AfterThrowing。
- **Pointcut**:切入点,用于匹配通知应应用的特定方法或执行点,可以通过类名、方法名或模板匹配。
- **Joinpoint**:连接点,程序执行过程中的可插入点,例如方法调用、异常处理等,是方面代码插入程序流程的关键位置。
**使用步骤**:
1. **创建组件**:首先,定义一个组件类,比如`MyImpl`实现`IMyService`接口,包含基本的方法,如`test()`。
```java
public class MyImpl implements IMyService {
public void test() {
System.out.println("test");
}
}
```
2. **部署组件**:在UPM(统一平台管理器)文件中,将`MyImpl`类作为组件部署,给定一个名称,如`cmp`。
3. **创建方面**:
- **拦截方面**:定义一个通知(Advice),并与切入点(Pointcut)关联,指示在何时何地应用。
- **包装方面**:可能涉及修改组件类的行为,如增加日志记录,但不改变原始接口。
4. **部署方面**:在UPM文件中配置方面,指定其应用条件和顺序,包括拦截顺序(在哪些方法前/后执行)、包装顺序等。
5. **注意事项**:AOP的使用需遵循一定的规则,如确保切点选择准确,避免过度使用导致代码复杂性增加。在编写方面时,要明确通知的类型和执行时机,以便在部署时正确配置。
NC AOP通过模块化的“方面”机制,实现了对已有组件功能的轻量级扩展和控制,提高了代码的复用性和可维护性。在实际项目中,开发者需要根据需求合理选择AOP的使用场景,确保代码结构清晰,性能优化。
2016-10-21 上传
2023-06-28 上传
2023-05-17 上传
2023-07-13 上传
2023-07-16 上传
2023-05-17 上传
2023-04-01 上传
2023-08-06 上传
2023-09-10 上传
wangzy-nice
- 粉丝: 58
- 资源: 6
最新资源
- Ansys Comsol实现力磁耦合仿真及其在电磁无损检测中的应用
- 西门子数控系统调试与配置实战案例教程
- ELM多输出拟合预测模型:简易Matlab实现指南
- 一维光子晶体的Comsol能带拓扑分析研究
- Borland-5技术资料压缩包分享
- Borland 6 技术资料分享包
- UE5压缩包处理技巧与D文件介绍
- 机器学习笔记:深入探讨中心极限定理
- ProE使用技巧及文件管理方法分享
- 增量式百度图片爬虫程序修复版发布
- Emlog屏蔽用户IP黑名单插件:自定义跳转与评论限制
- 安装Prometheus 2.2.1所需镜像及配置指南
- WinRARChan主题包:个性化你的压缩软件
- Neo4j关系数据映射转换测试样例集
- 安装heapster-grafana-amd64-v5-0-4所需镜像介绍
- DVB-C语言深度解析TS流