快速业务通道

Apache Geronimo和Spring 框架,第4部分 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-14
程序中调 用了哪些方法以及每个建议程序类中的执行流程。稍后事务也将被引入到此应用程序中,您将看到如何声 明性地定义应用程序的流程。所有工作都将在 XML 文件中完成。

这两个版本的应用程序都将使用 在 第 3 部分 中定义的 Spring JDBC 类以供数据库调用。

Apache Geronimo和Spring 框架,第4部分(5)

时间:2011-10-13 IBM Arun Chhatpar

工作区的目录结构

图 2 展示 了应用程序的布局。下载本教程附带的源压缩文件并将其解压缩到硬盘驱动器中。

本教程涉及到 了此处所示的所有目录及文件。

图 2. 解压缩源文件后得到的应用程序目录结构

定义 Add New Entry 页面

需要做的第一件事是为应用程序定义 Add New Entry 页面。 该页面将在一张表单中包含构成电话本条目的所有字段。此表单上的提交操作将把一个新条目添加到电话 本数据库中。

完成此操作后,将在应用程序中引入和定义方法标记的方面。如先前所述,方法标 记程序方面可被视为方法跟踪的方面。基本想法是通过在每个联结点处放置有意义的消息来理解应用程序 中的 Spring AOP 执行流程。

将所支持的类用于 Spring AOP 支持的建议是十分直观的。了解方 面的一种方法是在应用程序中定义方法标记的方面。虽然它的功能不是很多,但却展示了 AOP 的强大。

下一步将是把另一个方面 —— 事务 —— 引入应用程序中。Spring 将通 过允许您在应用程序中声明性地定义此类事务,再次展示其威力和简单性。您不需要更改任何代码。只需 对此事务声明性地循环执行数据库调用,Spring 将在成功时把事务提交到数据库,或在满足任意一个已 定义的失败条件时将事务回滚。

改进当前的电话本应用程序

图 3 展示了 Geronimo 中的 事件流程,第 3 部分 中所述。

图 3. 如何使对 home-aop.jsp 的请求在 Geronimo 应用服务器 上得到处理

现在来看一看 Spring AOP 支持的三种不同的建议。

Apache Geronimo和Spring 框架,第4部分(6)

时间:2011-10-13 IBM Arun Chhatpar

事件的 Before 建议流程

此处要为标记方面定义一个用于实 现 MethodBeforeAdvice 的类。MethodBeforeAdvice 是 Spring AOP 提供用于实现 AOP 的 Before 建议 结构的一个接口类。需要实现此类的 before() 方法,并且 Spring AOP 框架将确保在实际的方法调用前 在运行时先调用此方法。下一部分中的顺序图可以更清晰地说明此问题。

另外,还将在 ApplicationContext.xml 文件中引入 Bean 以将此建议应用到目标对象 PhonebookDataProvider 中。此 Bean 还将为 Spring AOP 定义切入点以将此建议应用到目标对象的所有方法中。

Spring 使用代 理模式为基于 ApplicationContext.xml 文件中所做的配置的应用程序提供 AOP 工具。

图 4 概 括了执行 Before 建议时 Spring 容器里的事件序列。

图 4. 定义 Before 建议后的事件序列

Apache Geronimo和Spring 框架,第4部分 - 编程入门网

如您在 图 4 的序列图中所见,SpringAOProxy 是 ProxyFactoryBean 的一个实例,它负责在切入点处截取执行,然后 将特定的建议应用到目标对象上。在这种情况下,首先将在 Spring AOP 的 BeforeAdvice 类的实现中调 用 before() 方面。然后通过在 PhonebookAdapter 类中调用实际的 getPhonebookEntries() 方法来结 束。

事件的 After 建议流程

类似于 Before 建议,此处将定义一个可以实现 Spring AOP 提供的 AfterReturningAdvice 接口的类,以实现 AOP 的 After 建议结构。

图 5 中描绘的事件 流程与 Before 建议的基本一样,惟一的不同是目标对象中的实际方法是在应用 After 建议之前调用的 。

换言之,先调用 getPhonebookEntries() 方法,然后 SpringAOProxy 调用 afterReturning() 方法。

图 5. After 建议的事件序列

Apache Geronimo和Spring 框架,

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!

分享到: 更多

Copyright ©1999-2011 厦门凌众科技有限公司 厦门优通互联科技开发有限公司 All rights reserved

地址(ADD):厦门软件园二期望海路63号701E(东南融通旁) 邮编(ZIP):361008

电话:0592-5908028 传真:0592-5908039 咨询信箱:web@lingzhong.cn 咨询OICQ:173723134

《中华人民共和国增值电信业务经营许可证》闽B2-20100024  ICP备案:闽ICP备05037997号