Spring AOP 重要概念以及理解
2018-02-25 11:20
288 查看
横切关注点
概念:在一个服务的流程中插入与业务逻辑无关的系统服务逻辑,这样的逻辑称为横切关注点,关注点可能横切多个对象。理解:比如在增删改查的业务流程中插入与业务不相关的打印输出日志的系统服务逻辑,这个系统服务逻辑就是一个横切关注点。
切面:
概念:将散落于各个业务对象之中的横切关注点收集起来或独立出来,设计为各个独立可重用的对象, 这些特殊对象称之为切面。理解:比如将各个打印输出日志的系统服务逻辑独立出来,成为公共的服务,以供其他业务逻辑模块调用,那么这个公共的服务就是切面。
为什么说是切面,就是说他好像一个切面一样,直接切入了业务逻辑,但是对于业务逻辑本身又不会产生什么影响。
连接点
概念:程序执行过程中明确的点,如方法的调用或特定的异常被抛出点。在Spring的AOP实现中,连接点总是一个方法调用。理解:连接点可以理解为业务逻辑中,执行增删改查的那个方法的那个特定的点。
通知:
概念:在特定的连接点,AOP框架执行的动作。各种类型的通知包括“around”、“before”和“throws”通知。通知类型将在下面讨论。许多AOP框架 包括Spring都是以拦截器做通知模型,维护一个“围绕”连接点的拦截器链。理解:在特定的增删改查的方法调用点,aop会指定环绕的方式,比如around、before、throws,这个环绕的方式就是通知。
为什么叫通知?可以理解为,我的切面(公共的打印系统输出日志的系统服务逻辑)通知你,我需要对你进行环绕,通知之后,把我的服务以around、before、throws这三种其中的一种插入你的业务逻辑层(增删改查的方法调用点)。
切入点:
概念:指定一个通知将被引发的一系列连接点的集合 。理解:我一个公共的打印日志系统服务逻辑,可以指定很多个通知的连接点。把这些连接点集中起来,成为一个点的集合,这个集合就是切入点。
切入点可以看成一个业务逻辑上被切入的很多连接点的集合。
引入
概念: 添加方法或字段到被通知的类。 Spring允许引入新的接口到任何被通知的对象。例如,你可以使用一个引入使任何对象实现 IsModified接口,来简化缓存。理解:在使用代理的时候,往被代理对象添加字段或者方法的过程叫做引入。
目标对象
概念: 包含连接点的对象。也被称作被通知或被代理对象。理解:连接点和这个连接点所属的类。
AOP代理
概念: AOP框架创建的对象,包含通知。 在Spring中,AOP代理可以是JDK动态代理或者CGLIB代理。理解:一种代理。
织入
概念::Advice被应用至对象之上的过程称之为织入(Weave)。在AOP中织入的方式有几个时间点:编译时期(Compile time),类加载时期(classload time),执行时期(Runtime) 例如使用AspectJ编译器就可以在编译时期完全织入。Spring和其他纯Java AOP框架一样,在运行时完成织入。理解:切面(公共的打印系统输出日志的系统服务逻辑)把它的服务以around、before、throws这三种其中的一种插入你的业务逻辑层(增删改查的方法调用点)的过程,叫做织入。
相关文章推荐
- T-SQL查询进阶--理解SQL Server中索引的概念,原理以及其他
- 操作系统概念 -第七版-重要概念的理解-(1-22)
- 深入理解计算机系统(3.8)---数组、异质结构以及指针的详解(十分重要)(难度较高)【呕心沥血版】
- laravel 框架以及关键概念重新理解
- 关于C++虚函数,纯虚函数以及模板等重要概念的深入讨论(二)
- Test4_理解java反射机制的概念以及应用
- 操作系统概念 -第七版-重要概念的理解-(41-55)
- 理解字符集和编码的概念,以及unicode和utf-8编码
- A/B 测试的基本概念举例理解以及具体实现方法【传统A/B测试基于后端的 A/B 测试(Back-end AB test),现在基本上基于前端js在客户端进行分流,有更多优点,请看里面】
- 协方差矩阵的概念,算法以及自己的一些理解
- RTOS的一些重要概念以及代码维护中的相应问题举例
- 顿悟,职业生涯最重要的是行业水平的积累,而不是多学某一门语言(很危险)——遥想铁血强人刘志军对铁路行业的理解以及执行力
- 操作系统概念 -第七版-重要概念的理解-(23-33)
- T-SQL查询进阶--理解SQL Server中索引的概念,原理以及其他
- Spring AOP概念理解 (通俗易懂)
- object-c 要理解协议的几个重要概念
- T-SQL查询进阶--理解SQL Server中索引的概念,原理以及其他
- T-SQL查询进阶--理解SQL Server中索引的概念,原理以及其他
- 关于C++虚函数,纯虚函数以及模板等重要概念的深入讨论(三)
- elasticsearch重要概念理解