Spring框架Aop

首先推荐一篇写的很好的文章:https://blog.csdn.net/q982151756/article/details/80513340
以下是我结合视频资料和网上资源总结的,主要就是讲了下什么是aop

什么是aop

aop技术简单的说它就是把我们程序中重复的代码抽取出来,程序中需要执行的时候,底层通过动态代理,进行使用
官方一点说就是,在不改变原有类的前提下,在原有类某些方法执行前后,插入任意代码。
抽象点说就是,把可能重复的代码提取出单独的方法,在需要使用的时候,将需要的地方横向切一刀,在这个切面上使用,如图

public class Demo {
	public void demo1() {System.out.println("调用demo1方法");}
	public void demo2() {	System.out.println("调用demo2方法");}
	public void demo3() {System.out.println("调用demo3方法");}
	public static void main(String[] args) {
		Demo demo = new Demo();
		demo.demo1();
		demo.demo2();
		demo.demo3();
	}
}

一段很简单的代码,大家肯定看得懂
Spring框架Aop正常情况下是按照调用的顺序进行执行,使用aop后,就可以在目标方法的前后添加通知,也可以说是方法,有前置通知,后置通知,环绕通知,异常通知等
上图的顺序也就变成了demo1==》前置通知 ==》demo2 》后置通知》demo3的顺序

概念

Joinpoint(连接点):
所谓连接点是指那些可以被拦截到的点。在spring中,这些点指的是方法,因为spring只支持方法类型的连接点。
Pointcut(切入点):
所谓切入点是指我们要对哪些Joinpoint进行拦截的定义。
Advice(通知/增强):
所谓通知是指拦截到Joinpoint之后所要做的事情就是通知。
通知的类型:前置通知,后置通知,异常通知,最终通知,环绕通知。
Target(目标对象):
代理的目标对象。
Proxy(代理对象):
一个类被AOP织入增强后,就产生一个结果代理类。
Aspect(切面):
是切入点和通知(引介)的结合。

上一篇:Python学习笔记(6)元组


下一篇:毕业论文(二)文章中多次引用同一参考文献的不同内容该如何标注