什么是AOP(通俗易懂)
怎么通俗怎么来,什么是AOP 思想 呢?
举个例子:就是有三个方法A,B,C,这三个逼都想找女朋友,那就来一个getGirl()方法吧,然后在A,B,C中都调用一遍getGirl方法,这样A,B,C都顺利找到了女朋友。
接着来了一位好兄弟D,他说凭什么要在我的方法内部调用getGirl呢?
D坦露:我确实是想找女朋友的,我也确实是想调用她,可是我这方法体实在没有地方盛getGirl()了,何况爷的方法内部那都是主要业务,能不能跟getGirl()方法说一声,在她那边记录一下,跟她说让她看着点,在我的方法内部中当我的rich()方法执行完了,就帮我调用一下getGirl()。
getGirl()听完想了想觉得也合理,就在自己的“登记表”中标注了一下,大致意思就是在D执行完rich()方法后就帮他调用自己(大意就是等D有钱了就找女朋友,悲)。
我突然觉得解决问题的关键或许是:换个角度,换个立场。
为什么这么说呢?
你看我们以前调用方法那都是什么,都是在方法中写入要调用的方法名,就像上面举得例子一样,要在自己的方法体中调用getGirl方法,这样就让我们自己方法的内部显得很冗杂。打个比方:在没有用AOP之前这个getGirl就像是静态的,她就坐在那里,一动不动,你要用她,她就帮你做事;而当用了AOP之后,她变成动态的了,她就像是变了一个人,她变得主动起来了,她开始关心其他的方法是不是要调用她了。
就像是:以前都是其他方法追着跟她说,某时某刻要调用一下你
相当于:被动等待
而现在是:她追着其他方法问:你们要调用我吗?调用的话就来我这登记一下
相当于:主动出击
如果上述内容懂了,那么去看AOP的概念来理解AOP就可能好理解了:
这种在运行时,动态地将代码切入到类的指定方法、指定位置上的编程思想就是面向切面的编程。
类的指定方法、指定位置:说的就是要调用她的方法。
我理解的这个动态就是:动态地在登记表中去寻找要调用她的方法(A,B,C,D),动态的将自己的代码切入(插入)到要调用她的方法(A,B,C,D)中.
这就是AOP思想,个人理解,如有理解不到位的还请指正,感谢!
如若转载请注明地址哦,不胜感激!
什么是AOP(通俗易懂)相关推荐
- 通俗易懂 spring aop demo
文章目录 0. 前言 1. 项目创建 2 切面构建 StorageAdvisor.java Horseman.java Swordman.java DemoController.java 3 测试 0 ...
- Spring AOP概念理解 (通俗易懂)【转】
1.我所知道的aop 初看aop,上来就是一大堆术语,而且还有个拉风的名字,面向切面编程,都说是OOP的一种有益补充等等.一下子让你不知所措,心想着:怪不得很多人都和我说aop多难多难.当我看进去以后 ...
- 通俗易懂的Spring AOP术语
今天写的这篇文章主要介绍Spring中的AOP术语,对于刚接触Spring AOP术语的初学者来说看书上的介绍或者其他视频讲解的对于自己理解起来很吃力,所以小编结合自己的经历总结了下所谓的AOP术语. ...
- 分享:aop 相关术语介绍之 本人通俗易懂大白话介绍
文章目录 1. 前言 2. aop 相关术语介绍 2.1 AOP 的理解 2.2 Joinpoint(连接点) 2.2.1 spring 官方文档解释 2.2.2 个人理解 2.3 Pointcut( ...
- Spring3基于注释驱动的AOP
51CTO正在组织十佳博客评选请 Spring3基于注释驱动的AOP 实在是郁闷刚刚编辑了一篇文章,由于字数的原因,没发布成功,好我就分开写吧,今天向大家介绍的是Spring基于注释驱动的AOP,其实 ...
- Spring Aop实例之AspectJ注解配置
上篇博文<Spring Aop实例之xml配置>中,讲解了xml配置方式,今天来说说AspectJ注解方式去配置spring aop. 依旧采用的jdk代理,接口和实现类代码请参考上篇博文 ...
- 切面是异步还是同步操作‘_【 .NET Core 3.0 】框架之十 || AOP 切面思想
本文有配套视频: https://www.bilibili.com/video/av58096866/?p=6 前言 上回<[ .NET Core3.0 ]框架之九 || 依赖注入IoC学习 + ...
- Spring AOP 面向切面编程
AOP 在软件业,AOP为Aspect Oriented Programming的缩写,意为:面向切面编程,通过预编译方式和运行期动态代理实现程序功能的统一维护的一种技术.AOP是OOP的延续,是软件 ...
- 【 .NET Core 3.0 】框架之十 || AOP 切面思想
本文有配套视频: https://www.bilibili.com/video/av58096866/?p=6 前言 上回<[ .NET Core3.0 ]框架之九 || 依赖注入IoC学习 + ...
- 解决:ClassNotFoundException: com.netflix.hystrix.contrib.javanica.aop.aspectj.HystrixCommandAspect
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 1. 场景,springcloud 学习工程中,把 feign 和 ribbon 工程 作为应用服务 ...
最新文章
- python压缩和解压缩
- fsum函数测试以及分析
- Redis单机版本框架
- 当脑机接口应用于建筑工地,会发生什么?
- 8. python list 和 tuple
- 自定义工作流任务控件
- [转载] 什么时候应该使用 ==?什么时候应该使用 Equals?
- es6-Set与Map
- php中files和FILRS,php获取文件内容最后一行示例
- 在线JSon格式显示工具
- 通过豆瓣Api,输入ISBN获取图书信息
- Java 数组 定义一个数组,获取数组中的最大值和最小值,奇数个数和偶数个数...
- Web前端性能优化全攻略
- 京东自动签到领京豆软件_京东618来了,合法又简单的自动领京豆的技能要get一下吗?...
- 荣耀V10什么时候升级鸿蒙,华为非常良心,荣耀V10用户迎来更新,2.08M补丁包优化稳定性...
- 小牛电动股权曝光:李彦持股4.4% 李一男持股降至28.1%
- 成功三大定律 重在厚积薄发!
- Java:一个帝国的诞生(请仔细看完,你会感叹这是一个奇迹)
- ffmpeg实例,fade淡入淡出效果
- Android Studio第六课:模仿QQ登录跳转