Spring5快乐教程(九)AOP基本知识
一、AOP的基本概念
什么是AOP
定义:面向切面(方面)编程,利用AOP可以对业务逻辑的各个部分进行隔离,从而使得其之间耦合度降低,提高程序可重用性,同时提高了开发效率。
通俗描述:不修改源代码方式,在主干功能里添加新的功能。
底层原理
AOP的底层原理使用的是动态代理。
两种情况
- 有接口的情况:使用JDK动态代理
- 创建接口实现类的代理对象,来增强类其中的一些方法。
- 无接口的情况:使用CGLIB动态代理
- 创建子类的代理对象,来增强类其中的一些方法。
二、JDK动态代理的实现
调用java.lang.reflect.proxy类的newProxyInstance方法
三个参数
- 类加载器
- 增强方法所在的类所实现的接口【数组形式,支持多个接口】
- 实现InvocationHandler接口的对象
代码实现
第1步 创建接口,定义方法
第2步 创建接口实现类,实现方法
第3步 使用Proxy类创建接口的代理对象
三、操作术语
连接点
定义:类中可以被增强的方法
切入点
定义:类中实际被增强的方法
通知(增强)
定义:实际被增强(通知)的逻辑代码
类型:
- 前置通知
- 后置通知
- 环绕通知
- 异常通知
- 最终通知
切面
定义:描述动作,把增强(通知)应用到切入点的过程
分类:
【阿肥的架构师之路】
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律