Spring学习(2):Spring-aop
上一次我们简单的介绍了一下什么是spring,这次我们把spring中的aop单独拿出来讲一下
aop可以分为两个部分,代理和Spring通知
-
代理
在看代理之前我们需要先明白,什么是代理?
代理模式(英语:Proxy Pattern)是程序设计中的一种设计模式。
所谓的代理者是指一个类别可以作为其它东西的接口。代理者可以作任何东西的接口:网上连接、存储器中的大对象、文件或其它昂贵或无法复制的资源。其中代理又分为静态代理和动态代理
代理的组成部分:
抽象角色:通过接口或抽象类声明真实角色实现的业务方法。
代理角色:实现抽象角色,是真实角色的代理,通过真实角色的业务逻辑方法来实现抽象方法,并可以附加自己的操作。
真实角色:实现抽象角色,定义真实角色所要实现的业务逻辑,供代理角色调用
我们这里只是简单的介绍了一下代理模式,有兴趣的小伙伴可以去网上深入了解一下代理模式,言归正传;
我们上面提到过,代理分为静态代理和动态代理,那么这两者之间在spring aop上的区别在哪里呢?
-
静态代理
静态代理的实现步骤以及优缺点:
-
动态代理
动态代理的实现步骤以及优点
从上面这两张图片,我们就可以看出这两种代理的区别
-
Spring通知
我们如何使用一个Spring通知呢?这个要按照步骤一步步来
(这里提几个文中会用到的单词,原对象: target 目标;代理类:advice 通知;混合产生的对象:proxy 代理)
- 第一步,建立一个接口
- 第二步,创建类实现接口 目标
- 第三步,创建代理类 通知
通知又分为三种,我们可以简单的写一下
- 第四步,配置applicationContaxt.xml文件
- 第五步,使用
经过上面的几步,我们就可以使用Spring通知了