AOP切面编程理解

86 阅读1分钟

文章已参与[新人创作礼]活动,一起开启掘金创作之路.

微信公众号:秀基宝。如有问题,请后台留言,反正我也不会听。

一、用途

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]
谷歌插件搜:秀基宝
小程序:秀基宝
复制代码
复制代码

后语

如果本文对你哪怕有一丁点帮助,请帮忙点好看。你的好看是我坚持写作的动力。 另外,关注免费学习。