Spring AOP—2、Spring中的AOP能为我们做些什么

本文介绍了Spring AOP的基本概念,如Aspect、Joinpoint、Advice等,并解释了Spring AOP的特点及其实现方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >


在介绍Spring的AOP功能前,先总结下几个AOP的概念,下面的几个AOP概念不是Spring指定的,而是AOP本身就有的。看看这些专业术语:

Aspect将对多个类的关注进行统一的模块。在Spring里面是一个普通的类,这个类相当于一个模块,里面包含了对各种类的所有关注,使用@Aspect来表示这个类是一个表明关注方面的类。

Join point:连接点,一个程序执行中的某个点,例如一个方法的执行点或者一个意外的处理等。注意在Spring的AOP里面这个Join point永远是代表着一个方法的执行。

Advice:建议,对于某个Aspect所关注的执行点上执行的动作,建议的种类包括“before”(连接点前执行的动作)、“after”(连接点后面执行的动作)、“around”(包容着连接点的相关动作,这个功能最强)。同大多数AOP一样,Spring中实现Advice也是使用拦截器,在连接点处维护着拦截器链表。

Pointcut:因为Join point连接点只是一个点,当我们希望某些动作是针对多个点时,一般做法就是使用正则表达式去匹配多个连接点,这个其实就是Pointcut的工作了,形象的描述就是Pointcut能够使用正则表达式“切”到多个连接点上。PointCut的表达式在AOP中很重要,Spring AOP使用的是AspectJ的Pointcut表达式语言

上面这几个是最基础的概念,另外还有几个相关的也来看看:

Introduction:介绍、引入,在被关注的类上面上增加附加的方法或者域。在Spring AOP中运行向被关注的类引入新的接口。

Target Object:目标对象,这个相当于原始类,就是被关注的类对象。Spring AOP使用的是运行时代理的技术,所以目标对象始终被代理的。

AOP Proxy:AOP代理,这个是由AOP框架创建的对象,目的是为了实现Aspect的相关通讯(比如所建议的方法能被执行)。在Spring中可以使用JDK动态代理或者CGLIB代理;它其实是实现对Target Object的功能进行代理的作用

Weaving:编织,将关注(Aspect)同其他应用类型或者对象编织在一起创建一个被建议的对象。这个实现可以在编译的时候、加载的时候或者运行的时候。在Spring中是在运行的时候进行交织的(weaving)。这个术语的含义就是把AOP代理同Target Object编制在一起,应用程序通过访问AOP Proxy来实现各种Introduction、Advice。


Spring AOP的功能及其目标

Spring AOP使用的是纯java实现,因此不需要再进行编译;另外它也不需要控制类的加载顺序(类的层次),所以很适合在Servlet容器或者应用服务器上使用。

Spring AOP目前只支持方法执行的连接点。

Spring AOP目的同其他AOP的框架有所不同;其目的不是提供完整一个AOP的实现,而是把重点放在如何把AOP同IoC进行整合来解决企业应用时的一些相关问题。

所以具体例子中我们会看到Spring AOP往往同Spring IoC容器合并在一起





评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值