AOP的专业术语
1.连接点(Joinpoint)
特定点是程序执行的某个特定位置,如类开始初始化前、类初始化后、类的某个方法调用前/后、方法抛出异常后。一个类或者一段程序代码拥有一些具有边界性质的特定点,这些特定点就称为 ”连接点“ 。
Spring 仅支持方法的连接点,即仅能在方法调用前、方法调用后、方法抛出异常时、方法调用前后这些程序点织入增强。
2.切点(Pointcut)
每个程序类都有多个连接点,如一个类拥有两个方法,这两个方法都是连接点。而在众多个连接点中,如何定位某些感兴趣的连接点呢? AOP 就是用过 “切点” 定位特定连接点。
打个比方,连接点相当于数据库中的记录,而切点就相当于的查询条件;一个切点可以匹配多个连接点。
在 Spring 中,切点通过 org.springframework.aop.Pontcut 接口进行扫描,使用类和方法作为连接点的查询条件。
3.增强(Advice)
增强是织入目标类连接点上的一段程序代码。也就是在切点上增加的业务逻辑代码。
4.目标对象(Target)
增强逻辑的织入目标类。
5.引介(Introduction)
引介是一种特殊的增强,它为类添加一些属性和方法。
6.织入(Weaving)
织入是将增强添加到目标类的具体连接点上的过程。
7.代理(Proxy)
一个类被 AOP 织入增强后,就产生了一个结果类。它是融合了原类和增强逻辑的代理类。
8.切面(Aspect)
切面由切点和增强(引介)组成,它既包括横切逻辑的定义,也包括连接点的定义。
Spring AOP 就是负责实施切面的框架,它将切面所定义的横切逻辑织入切面所指定连接点中。
AOP 的工作重心在于如何将增强应用于目标对象的连接点上。这里包括两项工作:
- 如何通过切点和增强定位到连接点上;
- 如何在增强中编写切面的代码
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)