- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第7章 项目开发:日志输出与事务管理功能
;;;;;;;;;;;IoC以外Spring的另一个关键的组件就是AOP框架。尽管如此,Spring IoC容器并不依赖于AOP,这意味着可以自由选择是否使用AOP,AOP提供强大的中间件解决方案,这使得Spring IoC容器更加完善。
面向切面编程(AOP)提供另外一种角度来思考程序结构,通过这种方式弥补了面向对象编程(OOP)的不足。 除了类(classes)以外,AOP提供了 切面。切面对关注点进行模块化,例如横切多个类型和对象的事务管理。(这些关注点术语通常称作横切(crosscutting)关注点。)
;AOP是一种流行的编程模型;
AOP的编程思想与OOP不同,是对OOP的一种强有力的补充;
通过AOP,能更好地实现模块化结构,或者能动态地为系统增加新功能而不影响原系统的结构.;概述
AOP 允许开发者动态地修改OOP定义的静态模型,即不用修改原来的OO模型,甚至可以不修改OO代码本身,即可完成对横切面问题的解决。
比如,将系统中处理日志、安全性、事务及其他企业级服务集中放置在一个地方。因此AOP使得OOP中的重复代码能够大范围减少。;Spring就是一个实现了AOP功能的IOC容器
;Sping AOP基于IoC,是对OOP的有益补充.
Sping AOP将应用系统分为两部分,核心业务逻辑及横向的通用逻辑,即切面(Aspect)。比如大型应用中涉及的持久化管理、事务管理、安全管理、日志管理和调试管理。
使用AOP可以将处理Aspect的代码注入主程序,AOP可以防止代码混乱。;AOP(Aspect-Oriented Programming,面向切面编程),可以说是OOP(Object-Oriented Programing,面向对象编程)的补充和完善。OOP引入封装、继承和多态性等概念来建立一种对象层次结构,用以模拟公共行为的一个集合。当需要为分散的对象引入公共行为的时候,OOP则显得无能为力。也就是说,OOP允许定义从上到下的关系,但并不适合定义从左到右的关系。
例如日志功能。日志代码往往水平地散布在所有对象层次中,而与它所散布到的对象的核心功能毫无关系。
对于其他类型的代码,如安全性、异常处理和透明的持续性也是如此。这种散布在各处的无关的代码被称为横切(cross-cutting)代码,在OOP设计中,它导致了大量代码的重复,而不利于各个模块的重用。;1.Cross-cutting concerns
如图7.1所示,原来的业务流程是很单纯的。;如图7.2所示,为了加入日志与安全检查等服务,类的程序代码中被硬生生地切入了相关的Logging、Security程序片段。
;AOP(Aspect Oriented Programming)的背景知识
为满足整个企业应用某方面的需求,开发者(架构师)需要整理出系统的关注点,如下图形象地描述了关注点。;SpringAOP实现
Spring AOP使用纯Java实现。它不需要专门的编译过程, 不需要控制类装载器层次,因此它适用于J2EE web容器或应用服务器。
Spring目前仅支持使用方法调用作为连接点(join point). Spring的观点是属性拦截破坏了封装。
Spring实现AOP的方法跟其他的框架不同。Spring并不是要提供最完整的AOP实现(尽管Spring AOP有这个能力),相反的,它其实侧重于提供一种AOP实现和Spring IoC容器之间的整合,用于帮助解决在企业级开发中的常见问题。
Spring使用动态代理实现AOP技术。
;现在的系统往往强调减小模块之间的耦合度,AOP 技术就是用来帮助实现这一目标的。
从某种角度上来讲“切面”是一个非常形象的描述,它好像在系统的功能之上横切一刀,要想让系统的功能继续,就必须先过了这个切面。
这些切面监视并拦截系统的行为,在某些(被指定的)行为执行之前或之后执行一些附加的任务(比如记录日志)。
而系统的功能流程(比如 Greeting)并不知道这些切面的存在,更不依赖于这些切面,这样就降低了系统模块之间的耦合度。 ;各种AOP实现切面的技术、框架、机制、手段可能不同,但是AOP技术的基本概念是相同的。包括以下7个术语:
连接点(join point)
切入点(cutpoint)
通知(advice)
引入(introduction)
目标对象(target object)
织入(weaving)
切面(Aspect);连接点(Joinpoint)
连接点指程序(目标对象)执行的某个点,如执行到某个方法、访问到某个成员变量、抛出某异常、装载某个类。在Spring AOP中,一个连接点总是表示一个方法的执行。
通常用连接点的强弱来衡量AOP实现的强弱。Aspect5实现的
您可能关注的文档
- 北京市房屋建筑与市政基础设施工程劳务分包合同.doc
- 北京市房屋建筑与市政基础设施工程施工总承包合同示范文本.doc
- 华润万家商品陈列原则与技巧.doc
- 单义词与多义词.ppt
- 单腿定单与组合定单.doc
- 台球运杆出杆正确姿势与练习方法.doc
- 名词冠词专项练习与答案详解.doc
- 园林绿化工程质量检查评定与验收标准.doc
- 危化品风险与应急能力评估报告(化工).doc
- 医院感控与护士职业防护ppt.ppt
- 多点监督与特征融合校准:目标检测算法的创新与突破.docx
- 南宁市门诊HIV_AIDS患者抑郁状况剖析与影响因素探究.docx
- 医疗过失犯罪中客观归责理论的精准适用与深度解析.docx
- 南宁市低碳经济发展研究.docx
- 清解瘀毒胶囊对脑出血大鼠血红蛋白毒性作用及机制探究.docx
- 内蒙古赤峰市元宝山区农村小学教师培训:现状、问题与突破路径.docx
- 泉州开发区国有资产投资经营有限公司发展战略研究:基于区域经济与市场环境的分析.docx
- 能源利用效率与经济增长方式的深度耦合及中国战略抉择.docx
- 分布式信号波达方向 - 时延联合估计算法的深度剖析与创新探索.docx
- 新媒体环境下大学校园精神传播的创新变革.docx
最近下载
- AI在小学数学兴趣培养中的应用教学研究课题报告.docx
- 河北光伏项目安装施工方案.docx VIP
- 新学期第一次中层领导会议上,校长讲话:此次会议就7个主要议题展开讨论....docx VIP
- 2025福建新华发行(集团)有限责任公司三明分公司会计岗位招聘笔试备考试题及答案解析.docx VIP
- 2025福建新华发行(集团)有限责任公司南平地区会计岗位招聘笔试备考题库及答案解析.docx VIP
- 《复合材料的特性与应用》课件.ppt
- 2025内蒙古交通投资(集团)有限责任公司所属天骄航空有限公司招聘25人笔试历年参考题库附带答案详解.docx
- 过敏性休克的应急预案演练脚本.pdf VIP
- 儿童慢性鼻窦炎的诊断和治疗中国专家共识(杭州2024).pptx VIP
- 管道吹扫记录.docx VIP
文档评论(0)