框架之spring1:AOP

AOP:java的第二个核心思想;

AOP是什么?为什么会出现AOP这一概念?

AOP是面向切面编程,

再三看了上篇那位大佬的解释https://blog.csdn.net/xlgen157387/article/details/78892509

他这篇,只是用将方法实现一遍接口InvocationHandler中的invoke方法而已。我感觉这和过滤器很像。只是每次使用一个方法,需要经过invoke方法而已。

如果仅仅是这样,那么需要AOP思想干嘛呢?直接写过滤器思想不是更好?

后来我百度了一下,大佬说:aop技术有两个:过滤器和拦截器。害我纠结半天。

此时我明白,就像是过安检的包裹,aop就这样,实至名归的将整个程序切开了。可以透过包裹外面看到程序的内在。

突然发现,当时,我写数据层代码的时候,有特别多重复的代码。每个都要获取数据库连接池。那么,利用aop这一思想。这些所有重复的代码,有可以被简写。

总结:现在回想,这AOP和IOC的思想。我感觉,它们的存在,是为了让程序更简洁,更有效。这两种,让我们写的程序成功实现低耦合,高内聚。


以上是当时的错误理解:2020-4-21

如果aop是简单的过滤器,那么就不需要aop这个概念了。

aop面向切面编程,顾名思义,当然是面向切面的。就是将方法切开,将该方法切离。通俗一点就是,把一整块肉切成一段一段的。为什么要这么做。非常经典的一个实例。当我登入时,我要记录登入时的记录,形成一个log,记录有谁登入过,用什么账号什么电脑等等,记录这一些信息。但是这些log登入的方法,是在登入成功后调用的。而且是必须调用的,所以用aop切开这个登入的方法,在其登入后调用。当然,你也可以在登入后调用一个log登入的方法,。但是,很多情况不只有一个登入。当两个登入同时执行这个方法,那么。又要写一样的记录登入的方法,那么这样的代码糟糕透了。耦合性太高了,当你想改一下记录登入方法的某一段代码时就要改多处。那么这个aop的意义就出来了。

你可能感兴趣的:(框架之spring1:AOP)