AOP面向切面编程,与面向切面编程相遇的那个雨夜

AOP面向切面编程,是一种方式,更是一种思想,当你认为它是一种思想时候才会想到它,从而运用它。

有人说它是对流程的切入,有人说它是一种代理 理解不一样用法也就不一样。

每一种思想,方法,方式 都是为了解决一种问题的,那么 AOP解决了什么问题呢。

普通编程 虽说是面向对象编程,最终还是有流程的,大模块的流程在里面,而在模块里面的流程中,怎么去切入进去呢?怎么在不影响整个模块流程的基础上去 嵌入另一个模块呢? 方法1:可以在流程中去放入切入的代码或者模块 ,然而这种方式,耦合性很强,不符合面向对象思想的高内聚低耦合,不便于后期维护。 方法2:抽象层面思考:就是在流程中 开一个小口,把想要走的代码或者模块放入进去,缝好流程,然后运行。方法2 可以通过AOP 面向切面编程实现~

之前的编程流程:

AOP面向切面编程:

1)对单个流程程序的切入,这种切入方法更像是代理。

2)对多个模块的切入

在步骤3和步骤4之间切入进去,打开一个小小的切口,切入进去,把想要的模块程序放入进去,就成了面向切面编程。

以上是AOP面向切面编程的思想,是想法,是指导思想 是 道,

之后论述 AOP面向切面编程的具体实现办法,这个是方法,具体逻辑 是术。

面向切面编程 java实现有三种方式,不过全部都是针对于方法下手的:

三种方法分别是:动态代理 ,cglib,springboot里面的AOP

这里笔者分别写了三篇博客具体实现:

动态代理实现:

cglib实现: 暂时没打算写

springboot实现: 之后补上,敬请期待

经验分享 程序员 微信小程序 职场和发展