文章已参与[新人创作礼]活动,一起开启掘金创作之路.
微信公众号:秀基宝。如有问题,请后台留言,反正我也不会听。
一、用途
1.提供声明式的企业服务
2.允许用户定义自己的方面,以完成AOP和OOP的互补使用
二、解释:
AOP切面编程:(一个程序横切的功能)比如一个程序是横向开发,你在某一时刻竖着一刀切下去做一件事。这个切下去的刀就是切面,专注某一时刻所做的事情,主程序不知道有这一事务发生并且改变
OOP编程:面向对象编程,世间万物一切皆为对象
三、Spring AOP实现
1.纯java代码实现,不需要编译,不需要控制类,加载器
2.目前只支持方法执行点,交给spring bean的方法执行
3.不是提供最完整Aop,而侧重点提供aop和spring ioc控制反转之间的使用,用于帮助企业应用常见的问题,从而提供综合全面的Aop解决方案
注意:有接口和无接口的Aop实现原理
四、概念
-
AOP:面向切面编程思想是继OOP面向对象编程思想后,又一个伟大思想。当你意识到这句话的时候,你大概已经理解了什么是AOP;
-
什么是切面:程序运行流程中的某一个特定点,在这个点你可以切入到原本的流程中,并且加入新的业务逻辑。
-
传统切面:找到切入点后,修改切入点前后程序代码,进而加入新的逻辑。
-
AOP的核心是:源代码无关性!也就是说,你加入的逻辑代码和业务代码是无关的两部分代码,只在程序运行期间,你可以加入插入的逻辑,也可以不加入。
-
实现AOP依赖的技术:JDK动态代理。我简单介绍代理,静态代理,动态代理,深入的了解大家可以参照其他大神。
-
静态代理:程序写好之后,你想修改代理过程,就必须修改源代码。
-
动态代理:程序写好后,你更改代理过程。只需要修改代理对象(分身)
本人开发的玩基金小工具
个人博客:
名称:纯洁的麦田
链接:[http://www.idearyou.cn/](https://www.idearyou.cn/ "http://www.idearyou.cn/")\
描述:争取哪一天做上架构师
公众号:纯洁的麦田
网址:[www.idearyou.cn]
谷歌插件搜:秀基宝
小程序:秀基宝
复制代码
复制代码
后语
如果本文对你哪怕有一丁点帮助,请帮忙点好看。你的好看是我坚持写作的动力。 另外,关注免费学习。