- 1、本文档共27页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 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 ):连接点是应用程序执行过程中插入方面的地点。这个地点可
以是方法调用、异常抛出
您可能关注的文档
- 《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
- 《SLEP考试(小托福)官方考试指南》.pdf
文档评论(0)