首页

文章

什么是aop

发布网友 发布时间:2022-03-24 06:11

我来回答

6个回答

热心网友 时间:2022-03-24 07:40

AOP为Aspect Oriented Programming的缩写,是面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术。AOP是OOP的延续,是软件开发中的一个热点,也是Spring框架中的一个重要内容,是函数式编程的一种衍生范型。

AOP的出现弥补了OOP的这点不足,AOP 是一个概念,一个规范,本身并没有设定具体语言的实现,AOP是基于动态代理模式。AOP是方法级别的,要测试的方法不能为static修饰,因为接口中不能存在静态方法,编译就会报错。

AOP可以分离业务代码和关注点代码(重复代码),在执行业务代码时,动态的注入关注点代码。切面就是关注点代码形成的类。Spring AOP中的动态代理主要有两种方式,JDK动态代理和CGLIB动态代理。JDK动态代理通过反射来接收被代理的类,并且要求被代理的类必须实现一个接口。

扩展资料

AOP实现的关键在于AOP框架自动创建的AOP代理,AOP代理主要分为静态代理和动态代理,静态代理的代表为AspectJ。而动态代理则以Spring AOP为代表,静态代理是编译期实现,动态代理是运行期实现,可想而知前者拥有更好的性能。

静态代理是编译阶段生成AOP代理类,也就是说生成的字节码就织入了增强后的AOP对象;动态代理则不会修改字节码,而是在内存中临时生成一个AOP对象,这个AOP对象包含了目标对象的全部方法,并且在特定的切点做了增强处理,并回调原对象的方法。

参考资料来源;百度百科--AOP

热心网友 时间:2022-03-24 08:58

AOP就是“面向切面编程”。只有当你真正的理解OOP之后,才可以理解AOP的思想。

这个思想,不是一两句就能将的明白的。用个生活中的例子:

人的手可以写字,并且可以用很多中笔来写字。例如,钢笔、铅笔、毛笔等等。(这里抽象的说)如果我们要用到人的手写字的时候,就必须提供给手很多中笔,可是每种笔的类型有各自不同,我们说笔有很多不同的属性的功能。如果才能让我们的手拿到任何一种笔都可以写字呢,我们可以这样做。将钢笔、铅笔、毛笔等等笔定义一种公共的“笔”的类型,让我们的手在使用笔的时候,只需要知道要使用一个笔来写字,而不需要关心使用什么笔来写。而决定给这只手用的笔的类型,就是你的事情了。

抽象成简单的代码:
interface Pen{}

class GangBi implements Pen{}
class MaoBi implements Pen{}
class QianBi implements Pen{}

class Human{
void usePen(Pen pen){}
}

这个概念超级抽象。不过,学习Spring框架可以快速的来理解这个概念。

热心网友 时间:2022-03-24 10:33

AOP为Aspect Oriented Programming的缩写,意为:面向切面编程(也叫面向方面),可以通过预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态统一添加功能的一种技术。AOP实际是GoF设计模式的延续,设计模式孜孜不倦追求的是调用者和被调用者之间的解耦,AOP可以说也是这种目标的一种实现。

热心网友 时间:2022-03-24 14:32

oop:纵向的业务。

Aop:oop的一个横向服务,是对oop进一步补充,提高安全、事务、日志等的集中式处理。

相关的装备 before、around、after

热心网友 时间:2022-03-24 16:57

AOP :面向切面编程 ,它主要关注的是程序的执行过程。具体解析:在java方法调用时,AOP机制能自动进行方法拦截,允许在方法调用之前,调用后,以及执行异常时添加特点的代码来完成需要的功能。特点:1,消除编码模块之间的耦合。 2, 可以在任意阶段,向已有功能模块中填加新功能,且不侵入原有功能 低侵入式设计 3, 各步骤之间的良好隔离性 , 源代码的无关性</p></p>

热心网友 时间:2022-03-24 19:38

aop是面向切面编程,语言、框架的发展都是一步步的分离、解耦的过程,来降低程序之间的依赖性和耦合性,使其达到标准、易维护、易理解、易复用等目的。
java中一般会说这样的一句话:“一个方法只做一件事情”。这样易复用、易理解、易维护。但是现在很多方法无法做到只做一件事情,我们的方法除了包含业务逻辑代码外还需要加例如日志、事务等相关操作的代码或代码引用。这样我们一个方法就不是做一件事情,而是做了业务逻辑、日志、事务三件事情。于是我们想办法把日志、事务定义成一个切面,这样可以在代码需要日志和事务的时候切入程序。来达到一个方法只做一件事情的目的。
个人理解,仅供参考。
宝石花的养殖方法介绍 宝石花怎么养才长得好 不想让老婆看到我电脑里的一些东西怎么办? 桥好路由器停电后在来电老是获取lp 勒索病毒加密的文件如何恢复? TPU贴合膜多少钱 华为手机如何将输入法改为简体 肉丝炒金针菇做法 仓储冷链信息怎么申报 什么是药品冷链物流 浙江食品冷链运输多少钱 生物冷链具备什么资质 投诉检测站最有效办法 冢君的解释 304C型钢厂 真诚推荐 永浩供 乌鲁木齐球墨铸铁厂家排名 2023年抖音618好物节招商规则 2023年抖音好物年货节好物直播间玩法说明 抖音2023好物年货节玩法攻略 互联网内容平台——小红书的优势与困境 ...女儿房间的空调洗一下滤网,问一下格力小金豆空调面罩怎么打开... 传真机和打印机有什么区别? 传真纸和打印纸哪个好 传真纸和复印纸哪个好 虚拟语气as though 的问题 We didn't know his telephone number, otherwise we would have teleph... 我想问一下 错综复杂条件句 那怎么不能使用在这里 if i can do this... 好可怕...好可怕的梦... 线束组装线束组装工艺要求 汽车线束英语翻译 带表卡尺怎么读数 带表卡尺的使用方法 压力变送器数显表 公主连结凯露表情包大全 臭鼬表情包图片一览[多图] 单眼皮怎么使用双眼皮贴? 咬人的那特小的虫子叫什么 Bose音响怎么连接蓝牙 博士音响蓝牙怎么连接 夹了一片菜叶,上面摆了七根鱼刺和在碗里放了七个汤勺,每个汤勺里放一根... 微信聊天记录怎么才能彻底删除?通过这几种操作可以确保隐私安全!_百度... IDM IDMShellExt64.dll无法删除 - 删除使用中的(进程相关或残留)文件... 写关于活动的句子100字 社区团购运营思路和实战有啥收获写100字 备忘录在手机的哪里 刚性消费有哪些 中国经济快速增长的原因 什么是刚性消费 什么叫刚性增长 特别精辟的个性签名(非常经典的个性句子) 特别经典的个性签名(非常惊艳的个性句子) 文艺范十足的个性签名(温柔治愈的个性签名句子) wps文字怎么设置每页头和尾 27岁的女人需要补充哪些营养元素 Spring的两种动态代理有什么区别 jdk动态代理和cglib的区别 动态住宅IP和静态住宅IP有什么区别?怎么选择? java动态代理和cglib动态代理的区别 什么是java代理模式,具体相关的动态代理和静态代理分别是什么?举例更好啦~ Java中的动态代理相对于静态代理有何优点? 静态代理,JDK动态代理和CGLib动态代理之前的区别 动态IP和静态IP的区别是什么? Java动态代理和静态代理的区别 Java动态代理与静态代理的定义与区别?? java静态代理与动态代理的区别 苹果xr闪退在上海黄浦区五福弄附近哪里能维修? 苹果XR为什么一打开王者一点就退是什么原因? IphoneXR昨天升级ios13后,微信qq闪退打不开怎么办 苹果Xr打开软件闪退提示已损坏但是修复不了是怎么回事? 苹果xr更新系统后微信打不开,闪退怎么解决? xr手机软件打不开闪退怎么回事 苹果xr王者荣耀闪退怎么解决 苹果xr更新14.3总是闪退 苹果XR又是系统点不开闪退是什么原因? AOP是什么意思? Spring事务管理是动态代理还是静态代理? CGLB支持动态代理吗?因为我听老师说CGLB是静态代理 Spring AOP实践动态代理和静态代理,为什么使用AOP spring的动态代理有几种实现方式 Spring AOP 一般用在什么场景中 小米9开启开发者选项在哪里 小米9的开发者选项在哪里打开 小米9手机开发者选项在哪 小米9开发者选项在哪里怎么打开 小米9se开发者选项在哪 小米的开发者选项怎么不见了,应该去哪里找? 小米9怎么进入开发者模式 小米9开发者选项在哪里关闭 小米cc9pro怎么进入开发者选项 小米9开发者选项怎么开启 小米怎么找开发者选项 小米cc9开发者选项在哪 小米9pro开发者选项怎么打开 小米9开发者模式怎么开 小米手机开发版最新版本的开发者选项在哪?
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com