网站大量收购闲置独家精品文档,联系QQ:2885784924

《Spring_AOP与事物管理》.pdf

  1. 1、本文档共27页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《Spring_AOP与事物管理》.pdf

第 25 章 Spring 的其他高级技术 本章着重介绍Spring 的两种技术,Spring AOP 和事务管理。Spring AOP 是一个基于 AOP 编程模式的框架。在Spring 框架中有很多其他的技术都建立在Spring AOP 的基础之 上。Spring 框架可以采用不同的方式进行事务管理,还可以对特定属性指定单独的事务处 理机制。本章的主要内容如下: AOP 概述; AOP 术语简介; 四种通知(Advice )的作用; 通过Advisor 指定切入点; 使用控制流切入点; 使用程序控制事务; 声明式事务; 事务属性的种类; 设置事务属性; 运程调用; 发送E-mail ; 调度任务。 25.1 Spring AOP AOP 和OOP 类似,也是一种编程模式。但AOP 并不能取代OOP,它只是对OOP 的 扩展和补充。Spring AOP 是基于AOP 编程模式的一个框架,其实现在AOP 规范内的大多 数功能,包括Advice 、Pointcut 等。 25.1.1 AOP 概述 对于 Java 程序员来说,应该对面向对象编程(OOP )并不陌生。OOP 通过继承、封 装和组合三个特性,大大增强了代码的重用性。然而,使用OOP 也不可避免地存在着代码 重用盲点。 虽然 OOP 可以通过层次树结构继承方法以及其他的类成员,而达到重用的目的,但 这种方式也只能是纵向的重用。如果要在不同类(这些类可能毫无关系)的某些方法中加 入特定的功能,如在这些方法执行完后,将执行结果写到日志文件中。按照面向对象的方 法,这样的功能可以通过组合或继承的方式来达到重用。但是,即使这样,同样的写日志 第25 章 Spring 的其他高级技术 代码仍然会分散到这些方法中,这样一来,要想关闭这些功能,或是修改写日志的方式, 就必须要修改所有相关的方法。从而会给开发人员带来更多的工作量,当然,出现bug 的 几率也会大大增加。 对于 OOP 中存在的这种问题,有人提出将这些分散到不同方法中的代码提出来,然 后在程序编译时,或是在程序运行时,再将这些代码放到它们应该在的地方。这显然用OOP 的思想无法办到。因为,OOP 只能实现父—子关系的纵向重用。而这种重用方式却属于横 向重用。因此,这种方法就形成了一种新的编程思想,这就是面向方面编程(AOP ,Aspect Oriented Programming )。虽然AOP 是一种新的编程思想,但却不是OOP 的替代品,而只 是OOP 的延伸和补充。 OOP 中的第1 个O 表示Object,也可以认为是Class,而AOP 中的A 表示Aspect 。 从这一点可以看出,Aspect 就相当于Class 。为了横向重用而提取出来的代码就放在Aspect 中。如图25.1 可以很好地描述OOP 和AOP 的关系。 图25.1 OOP 和AOP 的关系 从图25.1 可以看出,通过Aspect ,分别向Parent1 和Parent2 、Child1 和Child2 以及 Grandchild1 和Grandchild2 加入了日志、事务和其他需要横向重用的功能。 25.1.2 AOP 术语简介 为了更好地理解AOP ,就需要对AOP 的相关术语有一些了解。下面就解释一下AOP 的一些术语的含义。 方面(Aspect ):方面相当于OOP 中的类,就是封装用于横插入系统的功能,日 志是最典型的方面。可以创建一个日志切面来为系统提供日志功能。 通知(Advice ):在OOP 中,代码一般要写在类的方法中。AOP 也是一样,用于 横切的代码不能写在方法中,而需要写在和方法类似的实体中,这个实体就被称 为通知。因此,AOP 中的通知相当于OOP 中的方法,是编写实际代码的地方。 连接点(Joinpoint ):连接点是应用程序执行过程中插入方面的地点。这个地点可 以是方法调用、异常抛出

文档评论(0)

ycwf + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档