当前位置: 首页 > news >正文

Aop中的相关术语

口语化答案

哈哈,这个就不多说了,面试官问到什么概念,你就直接解释一下就可以了。

题目详细答案

切面(Aspect)

切面是 AOP 的核心概念之一,它是一个模块,它可以包含多个 advice(通知) pointcut(切入点)。切面可以看作是对某些功能(如日志记录、事务管理)的封装,advice(通知)代表了增强的功能(如日志记录、事务管理),切入点规定了这些功能会在特定的连接点上应用。

连接点(Join Point)

连接点是程序执行过程中可以插入切面的一个点。通常,连接点是方法的调用或执行。AOP 框架允许在这些连接点上插入额外的行为。

通知(Advice)

通知是在切面的某个特定的连接点上执行的动作。通知定义了切面在连接点上的具体行为。根据执行时间的不同,通知可以分为以下几种类型:

  • 前置通知(Before):在目标方法执行之前执行。
  • 后置通知(After):在目标方法执行之后执行(无论方法是否成功完成)。
  • 返回通知(After Returning):在目标方法成功返回之后执行。
  • 异常通知(After Throwing):在目标方法抛出异常时执行。
  • 环绕通知(Around):包围目标方法的执行,可以在方法执行之前和之后自定义行为。

切入点(Pointcut)

切入点是一个表达式,定义了哪些连接点会被切面所影响,可看做多个连接点的集合。切入点表达式用于匹配连接点,从而决定切面应该应用到哪些方法上。常见的切入点表达式语言包括 AspectJ 的表达式语言。

目标对象(Target Object)

目标对象是被一个或多个切面所通知的对象。目标对象是 AOP 代理的实际对象,即被代理的对象

AOP 代理(AOP Proxy)

AOP 代理是一个对象,用于实现切面契约(即通知方法)并将调用委托给目标对象。代理对象负责在调用目标方法之前或之后执行切面逻辑。AOP 代理可以是 JDK 动态代理(用于代理接口)或 CGLIB 代理(用于代理类)。

织入(Weaving)

织入是将切面应用到目标对象并创建 AOP 代理对象的过程。织入可以在以下几个时机进行:

  • 编译时(Compile-time Weaving):在编译阶段将切面织入到目标类中。
  • 类加载时(Load-time Weaving):在类加载阶段使用类加载器将切面织入到目标类中。
  • 运行时(Runtime Weaving):在运行时通过动态代理将切面织入到目标对象中。

引入(Introduction)

引入是 AOP 提供的一种机制,允许在不修改现有类的情况下向其添加新的方法或属性。引入可以用于增强现有类的功能。

http://www.lryc.cn/news/612163.html

相关文章:

  • FluentUI的介绍与使用案列
  • K8S的POD数量限制
  • 《Transformer黑魔法Mask与Softmax、Attention的关系:一个-∞符号如何让AI学会“选择性失明“》
  • sqli-labs靶场less40-less45
  • 【python中级】关于Flask服务在同一系统里如何只被运行一次
  • 大型音频语言模型论文总结
  • 基于CentOS-7.6部署k8s-1.24.0,containerd作为CRI,nerdctl作为容器管理CLI
  • 高阶组件实现Button权限
  • 对 .NET线程 异常退出引发程序崩溃的反思
  • PowerShell部署Windows爬虫自动化方案
  • 玩转 InfluxDB 3:用 HTTP API 快速创建高效数据表
  • 【Linux】调试器gdb/cgdb的使用
  • 信号处理:信号产生
  • 张艺兴续约担任传音手机全球品牌代言人 携手共启创新征程
  • 企业级DDoS防护实战案例
  • 数字取证和网络安全:了解两者的交叉点和重要性
  • 什么是 Kafka 中的消息?它由哪些部分组成
  • 《设计模式之禅》笔记摘录 - 13.迭代器模式
  • JP3-4-MyClub后台前端(二)
  • leetcode 3479. 水果成篮 III 中等
  • 多端同步新解法:Joplin+cpolar联合通过开源设计实现跨平台无缝协作?
  • 【学习笔记之redis】删除缓存
  • vue3 el-select el-option 使用
  • 学习嵌入式之硬件——ARM体系
  • CubeFS存储(一)
  • 【前端开发】四. JS内置函数
  • [特殊字符]企业游学 | 探秘字节,解锁AI科技新密码
  • 【Linux】重生之从零开始学习运维之主从MGR高可用
  • 无人机航拍数据集|第6期 无人机垃圾目标检测YOLO数据集772张yolov11/yolov8/yolov5可训练
  • 【python】OpenCV—Defect Detection