Spring AOP 中的 per-instance类型的Advice

在Spring中,Advice按照其自身实例(instance)能否在目标对象类的所有实例中共享这一标准,可以划分为两大类,即per-class类型的Advice和per-instance类型的Advice。

per-instance类型的Advice

与per-class类型的Advice不同,per-instance类型的Advice不会在目标类的所有对象实例之间共享,而是会为不同实例对象保存它们各自的状态以及相应的逻辑。
在Spring AOP中,Introduction就是唯一的一种per-instance型的Advice

Introduction

Introduction可以在不改动目标类定义的情况下,为目标类添加新的属性以及行为。

在Spring中,为目标对象添加新的属性和行为必须声明相应的接口以及相应的实现。这样,再通过特定的拦截器将新的接口定义以及实现类中的逻辑附加到目标对象之上,之后目标对象(确切地说是目标对象的代理对象)就拥有了新的状态和行为。而这个特定的拦截器就是org.springframework.aop.IntroductionInterceptor,其定义如下:
这里写图片描述
这里写图片描述

猜你喜欢

转载自blog.csdn.net/m0_37884977/article/details/79852397
今日推荐