当前位置: 首页>后端>正文

简单学习Spring AOP

AOP的定义

AOP (Aspect?Orient Programming),直译过来就是 面向切面编程,AOP 是一种编程思想,是面向对象编程(OOP)的一种补充。

OOP引入封装、继承、多态等概念来建立一种对象层次结构。

AOP则利用一种称为“横切”的技术,剖开对象内部,并将公共行为封装到可重用模块,从而减少重复代码,降低耦合。

Spring AOP的术语

AOP的术语大概有以下几个:

Joinpoint(连接点) :指那些被拦截到的点,在?Spring?中,指可以放研念机样行题是公态调会

Pointcut(切入点): 指要对哪些?Joinpoint进行拦截.即被拦截的连接点。

Advice?(通知): 指拦截到Joinpoint?之后要做的事情即对切入点增强的内容。Target?(目标)?指代理的目标对象。

Weaving(植入) :指把增强代码应用到目标上?生成代理对象的过程。

Proxy(代理) :指生成的代理对象。

Aspect?(切面): 切入点和通知的结合。?

AOP的通知分类:

通知根据通知的时机区分有五种类型:

前置通知(before)::使用aop:before标签,在方法之前执行

后置通知(after)::使用aop:after标签,在方法之后执行,无论方法内部是否抛出异常

后置返回通知(after-returning):使用aop:after-returning标签,在方法之后执行并且方法内部不能抛出异常

后置异常通知(after-throwing):使用aop:after-throwing标签,在方法内部抛出异常时执行

环绕通知(around):使用aop:around标签,在方法之前和之后都执行

使用AOP的多种方式:

1.使用Aspoectj实现切面(基于注解的实现方式()

步骤:

(1)、在spring配置文件中开启aop注解方式

<aop:aspectj-autoproxy></aop:aspectj-autoproxy>

(2)、使用@Aspect定义切面,使用@Pointcut定义切点,使用@Before、@After、@Around、@AfterReturning、@AfterThrowing定义通知的应用时机,

简单学习Spring AOP,第1张

运行结果:

简单学习Spring AOP,第2张

2.使用xml的方式来完成AOP的使用

(1)首先我们先建一个项目然后导入一个AOP相关的坐标

简单学习Spring AOP,第3张

(2) 再创建目标接口

简单学习Spring AOP,第4张

(3)创建目标类

简单学习Spring AOP,第5张

(4)创建切面类

简单学习Spring AOP,第6张

(5)配置applicationContent.xml

简单学习Spring AOP,第7张

(6)测试类

简单学习Spring AOP,第8张

最后Spring AOP的实现原理

Spring的AOP实现原理其实很简单,就是通过动态代理实现的。

Spring AOP 采用了两种混合的实现方式:JDK 动态代理和 CGLib 动态代理。

JDK动态代理:Spring AOP的首选方法。 每当目标对象实现一个接口时,就会使用JDK动态代理。目标对象必须实现接口

CGLIB代理:如果目标对象没有实现接口,则可以使用CGLIB代理。

资料链接:https://blog.csdn.net/Cr1556648487/article/details/126777903

? ? ? ? ? ? ? ?https://blog.csdn.net/qq_44096670/article/details/111311301?


https://www.xamrdz.com/backend/3nb1941190.html

相关文章: