大家好,本小节重点介绍一个新知识 —— AOP 。作为入门的第一小节,我们需要理解 AOP 的概念,了解 AOP 的专业术语,明白它的作用。
那么,到底什么是 AOP ,它存在的意义是什么,在开发中扮演了一个什么样的角色呢?
随着疑问,开始本小节的内容。
AOP 并不是 Spring 框架的专属名称,它的全称是 Aspect Oriented Programming ,意为:面向切面编程。
它是 OOP 的一个延续,通过预编译的方式和运行期间动态代理实现程序功能的统一维护的一种技术。
名词解释:
面向切面编程:
其实切面是数学中的一个概念,表示只有一个点接触到球体的一个平面称呼为切面,而接触点称呼为切点。那么在 Spring 中,切面编程指的是什么呢?
就是在程序运行某个方法的时候,不修改原始执行代码逻辑,由程序动态地执行某些额外的功能,对原有的方法做增强,这就叫做面向切面编程。
那个被监测的执行方法,称之为切入点。
我们明白了 AOP 的概念,它是一种编程设计模式,是一种编程技术,那么为什么在程序中使用它呢?
所谓连接点是指那些被拦截到的点。在 Spring 中这些点指的是方法,可以看作正在访问的,或者等待访问的那些需要被增强功能的方法。Spring 只支持方法类型的连接点。
所谓切入点是一个规则,定义了我们要对哪些 Joinpoint 进行拦截。因为在一个程序中会存在很多的类,每个类又存在很多的方法,而哪些方法会应用 AOP 对该方法做功能增强呢?
这就需要依据我们配置的切入点规则。
所谓通知是指拦截到 Joinpoint 之后所要做的事情就是通知。 也就是对方法做的增强功能。
通知分类:
Target 指的是代理的目标对象,更通俗的解释就是:AOP 对连接点方法做增强,底层是代理模式生成连接点所在类的代理对象,那么连接点所在的类,就是被代理的类称呼为 Target。
切面本质是一个类,只不过是个功能类,作为整合 AOP 的切入点和通知。一般来讲,需要在 Spring 的配置文件中配置,或者通过注解来配置。
织入是一种动作的描述,在程序运行时将增强的功能代码也就是通知,根据通知的类型(前缀后缀等…)放到对应的位置,生成代理对象。
一个类被 AOP 织入增强后,产生的结果就是代理类
本小节主要是 AOP 的入门介绍,那么重点给大家讲述了 AOP 的概念、意义、以及常见术语。
当然对于初学者而言,文字描述略显苍白和枯燥,而我们本小节目的也是给大家做个铺垫,
对一些名词做个解释和介绍,以便后续测试案例的讲解。
0/1000