记得今年年初刚开始面试的时候,被问的最多的就是你知道Spring的两大核心嘛?那你说说什么是AOP,什么是IOC?我相信你可能也被问了不少次了。面试
一、究竟是什么是AOP?编程
所谓AOP也就是面向切面编程,可以让咱们在不影响原有业务功能的前提下,横切扩展新的功能。这里面有一个比较显眼的词咱们须要注意一下,横切,它是基于横切面对程序进行扩展的。学习
二、AOP相关术语代理
在Spring的AOP中有不少的术语,并且容易混淆,你们必定要先搞清楚这几个概念:对象
● 链接点(Joinpoint):在程序执行过程当中某个特定的点,好比类初始化前、类初始化后,方法调用前,方法调用后;
● 切点(Pointcut):所谓切点就是你所切取的类中的方法,好比你横切的这个类中有两个方法,那么这两个方法都是链接点,对这两个方法的定位就称之为切点;
● 加强(Advice):加强是织入到链接点上的一段程序,另外它还拥有链接点的相关信息;
● 目标对象(Target):加强逻辑的织入目标类,就是个人加强逻辑植入到什么位置;
● 引介(Introduction):一种特殊的加强,它能够为类添加一些属性喝方法;
● 织入(Weaving):织入就是讲加强逻辑添加到目标对象的过程;
● 代理(Proxy):一个类被AOP织入加强后,就会产生一个结果类,他是融合了原类和加强逻辑的代理类;get
● 切面(Aspect):切面由切点和加强组成,他是横切逻辑定义和链接点定义的组成;io
三、AOP功能实践扩展
咱们这里主要是学习SpringBoot中的一些功能,因此咱们这里用的是SpringBoot工程,版本也是最新的2.0.5版本。程序