浅谈spring中AOP以及spring中AOP的注解方式
AOP(Aspect Oriented Programming):AOP的专业术语是"面向切面编程" 什么是面向切面编程,我的理解就是:在不修改源代码的情况下增强功能.好了,下面在讲述aop注解方式的情况下顺便会提到这一点.
一、搭建aop注解方式的环境(导入以下的包)
二、实现
环境搭建好了之后,就创建项目。
1.创建接口类(CustomerDao)并添加两个方法
2.接口类创建好了后,自然是要new一个实现类(CustomerDaoImpl)并实现接口中的方法
3.以上基础工作做完后,我们要用到springIOC的思想,将customerDaoImpl类交给spring管理
在src目录下创建名为 applicationContext.xml 的xml文件
bean是一个spring中的标签对, 你可以理解为一个小物品,id就是你取的名字,但是一般都是类名然后首字母小写, class中添加的是类的全路径
开启自动注解/代理:只有开启了自动代理 ,我们接下来所编写的注解才有真正的应用
4.环境和基础类都编写完成,接下来可以创建一个Demo类用于实现
首先我们需要将存在spring容器中的CustomerDaoImpl类拿出来
代码''1'和'2'就是做这个事情的。
'1'中顾名思义,你得告诉它从哪里拿,所以要给一个路径
'2'中就是注解的方式,叫依赖注入:将xml文件中早就写好的类注入给字段customerDao,@Resource中的name就是指之前bean中的id值
接下来就是测试了(需要添加代码'3''4'),编写一个run1()在方法上添加@Test,测试的时候双击方法名选中后右键选择在junit上运行,这就是单元测试了,很方便。
有了前面的铺垫后,执行了run1方法后就可以显示实现类中的两行输出了
三、aop切面类
1.创建切面类MyAspectAnno.java(在配置文件中添加一个bean,继续交给spring管理)
2.添加需要增强的功能方法
value中的代码是表达式, public 后的*是指任何类型的返回值都可以, save()是指在哪里增强或者说在哪里添加功能,这些代码写完后就是指 在save()执行后会执行 注解@After下的方法,即after() 这就是增强了
但是当我们多写几个通知(环绕通知,前置通知等等)每次都要添加表达式的代码,复制粘贴也很麻烦,这里我们可以添加一个切入点,实现如下:
以后我们只需要这样做就行了,下面添加了一个环绕通知:
value值不再是很长的表达式了,也方便以后的维护
上图已经很明确的说明了我们成功实现了功能的增强,利用aop思想并用注解的方式(我们所添加的通知分别在切入点(save())的之后和环绕着执行了)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
· 三行代码完成国际化适配,妙~啊~