- 1、本文档共27页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《Spring_AOP_实现原理与CGLIB应用》.pdf
SpringAOP CGLIB
SpringAOP CGLIB
SSpprriinnggAAOOPP 实现原理与CCGGLLIIBB 应用
简介: AOP(AspectOrient Programming),也就是面向方面编程,作为
面向对象编程的一种补充,专门用于处理系统中分布于各个模块(不同方法)中
的交叉关注点的问题,在 JavaEE 应用中,常常通过 AOP 来处理一些具有横
切性质的系统级服务,如事务管理、安全检查、缓存、对象池管理等。AOP 实
现的关键就在于 AOP 框架自动创建的 AOP 代理,AOP 代理主要分为静态代
理和动态代理两大类,静态代理以 AspectJ 为代表;而动态代理则以 Spring
AOP 为代表。本文会从 AspectJ 分析起,逐渐深入,并介绍 CGLIB 来介绍
SpringAOP 框架的实现原理。
AOP(AspectOrient Programming),作为面向对象编程的一种补充,广
泛应用于处理一些具有横切性质的系统级服务,如事务管理、安全检查、缓存、
对象池管理等。 AOP 实现的关键就在于 AOP 框架自动创建的 AOP 代理,
AOP 代理则可分为静态代理和动态代理两大类,其中静态代理是指使用 AOP
框架提供的命令进行编译,从而在编译阶段就可生成 AOP 代理类,因此也称
为编译时增强;而动态代理则在运行时借助于 JDK 动态代理、CGLIB 等在内
存中“临时”生成 AOP 动态代理类,因此也被称为运行时增强。
AOP
AOP
AAOOPP 的存在价值
本文由兰州白癜风专科医院/ 工作人员转载整理
在传统 OOP 编程里以对象为核心,整个软件系统由系列相互依赖的对象所
组成,而这些对象将被抽象成一个一个的类,并允许使用类继承来管理类与类之
间一般到特殊的关系。随着软件规模的增大,应用的逐渐升级,慢慢出现了一些
OOP 很难解决的问题。
我们可以通过分析、抽象出一系列具有一定属性与行为的对象,并通过这些
对象之间的协作来形成一个完整的软件功能。由于对象可以继承,因此我们可以
把具有相同功能或相同特性的属性抽象到一个层次分明的类结构体系中。随着软
件规范的不断扩大,专业化分工越来越系列,以及 OOP 应用实践的不断增多,
随之也暴露出了一些 OOP 无法很好解决的问题。
“ ” “
现在假设系统中有 3 段完全相似的代码,这些代码通常会采用 复制 、粘
贴”方式来完成,通过这种“复制”、“粘贴”方式开发出来的软件如图 1 所示。
1.
1.
图 11..多个地方包含相同代码的软件
本文由兰州白癜风专科医院/ 工作人员转载整理
看到如图 1 所示的示意图,可能有的读者已经发现了这种做法的不足之处:
如果有一天,图 1 中的深色代码段需要修改,那是不是要打开 3 个地方的代
码进行修改?如果不是 3 个地方包含这段代码,而是 100 个地方,甚至是
1000 个地方包含这段代码段,那会是什么后果?
为了解决这个问题,我们通常会采用将如图 1 所示的深色代码部分定义成
一个方法,然后在 3 个代码段中分别调用该方法即可。在这种方式下,软件系
统的结构如图 2 所示。
2
2
图 22 通过方法调用实现系统功能
对于如图 2 所示的软件系统,如果需要修改深色部分的代码,只要修改一
个地方即可,不管整个系统中有多少地方调用了该方法,程序无须修改这些地方,
——
只需修改被调用的方法即可 通过这种方式,大大降低了软件后期维护的复杂
本文由兰州白癜风专科医院/ 工作人员转载整理
度。
对于如图 2 所示的方法 1、方法 2
您可能关注的文档
- 《SEO赚钱培训(新人SEO道破指南)作者:望空长吼》.pdf
- 《SH JUG - java debugging - from desktop to cloud》.pdf
- 《SIEMENS_S7-300_PLC_培训资料》.pdf
- 《SilverStone ST65F-G 评测》.pdf
- 《SIMATIC PCS 7 V7 OS单站结构,客户机服务器结构以及冗余配置》.pdf
- 《sjtu_se_212_数据库》.pdf
- 《Skjalm P Spring 二零一六 Catalog(16页)》.pdf
- 《SL104-95水利工程水利计算规范》.pdf
- 《SL204-98开发建设项目水土保持方案技术规范》.pdf
- 《SL358-二零一六农村水电站施工环境保护导则》.pdf
文档评论(0)