第8章 Spring的AOP-【千锋教育】Java EE(SSM框架)企业应用实战
2023-03-21
|
36页
|
128人阅读
|
0人下载
教辅
内容正文:
第8章Spring的AOP
·AOP基础
·Spring AOP的实现机制
·Spring AOP的开发方法
·多个切面的优先级
·Spring AOP的应用
8.1AOP基础
8.1.1
AOP简介
目录
Contents
8.1.2
AOP的基本术语
初心至善匠心有人
8.1AOP基础
8.1.1A0P简介
·AOP是Aspect Oriented Programming(面向切面编程)的缩写,和OOP不同,
它主张将程序中的相同业务逻辑进行横向隔离,并将重复的业务逻辑抽取到一个
独立的模块中,最终实现提升程序可复用性和开发效率的目的。
·在传统的○OP编程中,借助于面向对象的分析和设计,程序的功能通过对象与对
象之间的协作来实现。OOP引入抽象、封装、继承等概念,将具有相同属性或行
为的对象纳入到一个层次分明的类结构体系中,由于类可以继承,因此这种体系
是纵向的。
素知用户情皂
更新用户情总
影脊用户作息
·随着软件规模的不断扩大,系统中出现
开始
开始
开始
了一些OOP难以彻底解决的问题。例
事物管理
事物管理
事物管理
执柠海如
执行更断
执行制除
如,系统的某个类中有若干个方法都包
含事务管理的业务逻辑,如图所示。
8.1AOP基础
8.1.1A0P简介
·从图中可以看出,查询用户信息、修改用户信息、删除用户信息的方法体中都包
含事务管理的业务逻辑,这会带来一定数量的重复代码并使程序的维护成本增加。
基于横向抽取机制,AOP为此类问题提供了完美的解决方案,它将事务管理的业
务逻辑从这三个方法体中抽取到一个可重用的模块,进而降低耦合,减少重复代
码。
8.1AOP基础
8.1.2AOP的基本术语
·上个小节讲解了AOP的基本概念,接下来对AOP涉及的基本术语进行详细讲解。
·1.连接点(Joinpoint)
·程序执行过程中某个特定的节点,例如,某个类的初始化完成后、某个方法执行
之前、程序处理异常时等。广义上讲,一个类或一段程序代码拥有一些具有边界
性质的特定点都可以被作为连接点,但由于Spring仅仅支持方法连接点,因此,
在Spring AOP中,一个连接点是指与方法执行相关的特定节点。
·2.通知(Advice)
·通知是在目标类连接点上执行的一段代码,包括around、.before和after等不同类
型。在Spring AOP中,它主要描述围绕方法调用而注入的行为,相比之下,功能
更加细化。
8.1AOP基础
8.1.2A0P的基本术语
·Spring AOP:提供的通知类型,具体如表所示。
涵知类型
横述
对至通如(Be)
在国标方法仗调用之竹调用退
后置透知(Ahgr)
在进林方法减湖用之后调用国教
返国g知(Afere:)
在具标方法成动校行之后调用道起
异常适知(fher thruwing之
在月标方法抛出弄常之后调制通妇
练绕适知(Arund)
遥动爸策了秋通物的才法,在被通知的才法裤时前博
用后执行白完义的行为
·表中列举了Spring AOP提供的通知类型,关于这些通知类型的使用方法,本书在
后文中会有讲解,此处不再赘述。
·3.切点(Pointcut)
·匹配连接点的断言,AOP通过切点来定位特定的连接点。通知和一个切入点表达
式关联,并在满足这个切入点的连接点上运行(例如,当执行某个特定名称的方
法时)。切入点表达式如何和连接点匹配是AOP的核心。
8.1AOP基础
8.1.2AOP的基本术语
·4.目标对像(Target)
·通知所作用的目标业务类。如果缺少AOP的支持,那么目标业务类就要独立完成
所有的业务逻辑,为了降低冗余,目标业务类可以借助AOP将重复代码抽取出来。
·5.引介ntroduction)
·引介是一种特殊的通知,它为类添加一些属性和方法。如此一来,即使一个业务
类原本没有实现某一个接口,通过AOP的引介功能,也可以动态地为该业务类添
加接口的实现逻辑,让业务类成为这个接口的实现类。
·6.t切面(Aspect)
·对系统中的横切关注点逻辑进行模块化封装的AOP概,念实体。关注点模块化
之后,可能会横切多个对象。Spring AOP:是实施切面的具体方法,它将切面
所定义的横切逻辑添加到切面所指定的连接点中。
8.1AOP基础
8.1.2AOP的基本术语
·7.织入Weaving)
织入是将通知添加到目标类具体连接点的过程,这些可以在编译时、类加载时和
运行时完成,Spring:采用动态代理织入,而AspectJ采用编译期织入和类装载器织
入。
·8.代理(Proy)
·目标类被AOP织入增强后产生的一个结果类,这个结果类融合了原类和增强的逻
辑,根据不同的代理方式,代理类既可能是和原类具有相同接口的类,也可能就
是原类的子类,所以可以采用与调用原类相同的方法调
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。