千家信息网

Spring框架中AOP技术是什么

发表于:2025-01-23 作者:千家信息网编辑
千家信息网最后更新 2025年01月23日,这篇文章主要介绍了Spring框架中AOP技术是什么,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。AOP并不是spring中所独创的技
千家信息网最后更新 2025年01月23日Spring框架中AOP技术是什么

这篇文章主要介绍了Spring框架中AOP技术是什么,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

AOP并不是spring中所独创的技术,因为AOP可以理解为是一种编程思想,例如OOP(面向对象编程)一样。只是最近它才被作为一项技术真正的用于软件开发中的。那么到底什么是AOP呢?AOP的全称为Aspect Oriented Programing。看翻译我们基本就可以猜出AOP的名字了,也就就是我们常常听说的面象切面编程。我们通过下面的例子来展示AOP到底能够解决我的方法中的什么问题?

我们在日常开发时知道,如果多个类中有相同的代码,那么我们就要考虑抽取一个公共的抽象类或接口,将多个类中的相同的代码提取到抽象类中去实现,不同的逻辑放到相应的子类中去处理,这样不但方便我们开发与维护,还遵循了软件重构的思想。那么这样真的能消除掉决子类中的重复代码吗?我们看下面的例子:


我们看上述的代码UserService类中只有简单的代码,我们用一条输出语句代替具体的业务逻辑,但是在我们日常开发,常常需要向上述的代码一样,为相应的逻辑添加事物以解决一致性的问题。这时上述的代码的弊端也就展现出来的,也就是业务代码中会有大量的事物管理的代码,并且这些代码,我们并没办法法通过提取抽象类的方法解决。这时如果我们想要消除到业务逻辑里的事物代码就要考虑使用AOP解决了。那么spring中怎么用AOP解决上述问题呢?先不要着急,我们先抛砖引玉在后面的文章中我们在看具体的解决办法法,我们接下来了解一下spring中AOP其它方法的知识。

在spring的AOP中定义了一些基本的术语,我们下面将介绍这些术语的具体名字与作用。

  • 连接点

程序执行的某个特定位置,也就是类的方法调用前、调用后、方法抛出异常后等。在spring中连接点只支持方法的连接点,也就是只能在类的方法调用前、调用后、方法抛出异常后等。

  • 切点

切点就也是定位特定的连接的。简单一点的比喻就是连接点相当于数据库的记录,而切点就相当于查询条件。所以,在spring中切点与连接点不是一一对应的关系,一个切点可以匹配多个连接点。

  • 增强

增强就是添加到目标类连接点上的代码,也就是上述我们例子中的添加事物的代码。正是因为如此,所有spring为我们提供的增强接口都是带方位名的,例如BeforeAdvice、AfterReturningAdvice等。

  • 目标对象

也就是添加增强逻辑的目标类。

  • 引介

一种特殊的增强,它可以为类添加一些属性和方法。即使这个类没有实现某个接口,通过引介也可以动态为该类添加接口的实现逻辑。

  • 织入

织入就是将增强添加到目标类具体连接点的过程。AOP有三种类型的织入它们分别是:

  1. 编译期织入

  2. 类装载期织入

  3. 动态代理织入,在运行期为目标类添加增强生成子类的方法。

spring采用动态织入,而AspectJ采用编译织入和类装载期织入。

  • 代理

目标类被增强后就会生成一个新的包括增强逻辑的代理类。我们就是使用这个代理类,来完成我们横切的逻辑。

  • 切面

切面由切点和增强组成,它即包括横切的逻辑,也包括连接点的定义。

感谢你能够认真阅读完这篇文章,希望小编分享的"Spring框架中AOP技术是什么"这篇文章对大家有帮助,同时也希望大家多多支持,关注行业资讯频道,更多相关知识等着你来学习!

代码 方法 连接点 逻辑 切点 目标 也就是 就是 技术 事物 接口 篇文章 代理 开发 业务 例子 切面 动态 多个 子类 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 数据库 模式分解的算法 服务器matlab 有多大 风投互联网科技有限公司 计算机网络技术阚宝朋课后题 网络安全课题分析报告 网络部关于网络安全的请示 电脑服务器系统不支持投屏 即时通讯服务器集群架构优势 慈溪一站式软件开发设计 高考数据库系统 远程会诊时服务器故障导致雪花 政府部门网络安全管理规范 微信娱乐软件开发 建站数据库怎么导入 云闪付绑卡时提示请求服务器失败 代理服务器软件原理 湖南创无限移动互联网科技有限 指导和管理网络安全工作的委员会 马哥网络安全工程师 网络安全话语 广州服务器风机公司 软件开发可以报一建吗 网康科技 互联网控制开关 a2mac1数据库申请帐号 json可以替代数据库吗 广发银行股份有限公司网络安全 设备管理软件开发新闻稿 亚信科技算不算互联网大厂 独立站服务器 沈阳科讯网络技术有限公司
0