您的位置:首页 > 编程语言 > Java开发

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这三种其中的一种插入你的业务逻辑层(增删改查的方法调用点)的过程,叫做织入。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐