快速业务通道

Apache Geronimo和Spring框架,第3部分: 集成DAO与ORM - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-14
应用程序的功能。

Apache Geronimo和Spring框架,第3部分: 集成DAO与ORM(4)

时间:2011-10-13 IBM Arun Chhatpar

工作区的目录结构

图 1 展示了应用程序的布局。因为您已经在本系列 教程中执行过此过程,现在可以直接下载本教程附带的压缩文件(请参阅 下载 部分)并将其解压缩到硬 盘中。这应当会创建一个具有所有必需的文件及子文件夹的工作区目录(在我的计算机中,它是 k:/workspace。在本教程的其余部分,我将把此目录称为 <WORKSPACE>)。

本教程中涵盖 了 图 1 中所示的所有目录和文件。

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

Apache Geronimo和Spring框架,第3部分: 集成DAO与ORM - 编程入门网

回顾当前的电话本应 用程序

在创建新的事件流程之前,让我们先来迅速回顾一下本系列教程的 第 2 部分 中在 Geronimo 内创建的事件(参见 图 2)。

图 2. Geronimo 应用服务器处理请求的流程

如 图 2 所示,对 home.do 页面的请求将转到 Geronimo 应用服务器。运行在 Geronimo 容器 内部的 Tomcat Web 容器将处理对应用服务器的请求。Tomcat 随后读取配置文件(尤其是 web.xml), 发现 DispatcherServlet 已被配置为处理此请求,因此该请求被转发到 DispatcherServlet。

DispatcherServlet 是 Spring MVC Framework 的一部分,因此 Spring 容器将从此处接管并尝 试判断如何处理此请求 —— 或者判断应当由哪个控制器处理此请求。此容器使用依赖性注入 来执行此操作(IoC,也称为依赖性注入,是一种用于解决组件的依赖性解析、配置和生命周期的设计模 式)。然后它使用在 phonebook-servlet.xml 中定义的 Application Context(Spring 框架中用于解析 组件间的依赖性的中心接口),phonebook-servlet.xml 文件帮助 Spring 容器把 /home.do 请求与 PhonebookController 关联起来。然后请求被转发给 PhonebookController 类。这将返回 home.jsp 页 面。响应被转发给 Tomcat 容器,该容器编译 JSP 并将响应返回给浏览器。

Apache Geronimo和Spring框架,第3部分: 集成DAO与ORM(5)

时间:2011-10-13 IBM Arun Chhatpar

使用 Spring DAO 和 JDBC 处理 home-dao.jsp

看一看使用 Spring DAO 和 JDBC 后的事件。对 home-dao.jsp(应用程 序的 JDBC DAO 实现)的请求将经历 图 2 中所示的事件,直至请求到达 JSP 页面。此页面的前几行告 诉容器只能使用 PhonebookDataProvider 服务获取数据。Spring 容器将从 Application Context 中读 取 PhonebookDataProvider 的 Bean 定义。它还使用依赖性注入将 PhonebookJdbcDao 与此实例的 PhonebookDataProvider 动态地关联起来。实现 Spring DAO API 的 PhonebookJdbcDao 将使用 Spring 容器的 IoC(依赖性注入)或使用为该目的定义的 Bean 读取要使用的数据源。按照预期,一切依序进行 ,PhonebookDataProvider 将使用 Spring JdcbTemplate 类从数据库中读取数据。这种解释听起来可能 有点太过复杂不容易理解,但是随着后面应用程序的开发,这些解释会变得清晰起来。图 3 显示了处理 此请求的事件流程。

图 3. JDBC-DAO 应用程序的事件流程

使用 Spring ORM 和 iBATIS 处理 home-orm.jsp

接下来,将使用 ORM 从数据库中读取数据。对 home-orm.jsp(应用 程序的 ORM 实现)的请求将经历 图 2 中所示的事件,直至请求到达 JSP 页面。home-orm.jsp 的前几 行告诉容器只能使用 PhonebookDataProvider 服务获取数据。

Spring 容器将从 Application Context 中读取 PhonebookDataProvider 的 Bean 定义。它使用依赖性注入将 SqlMapPhonebookDao 与 此实例的 PhonebookDataProvider 动态地关联起来。使用 Spring ORM API 的 SqlMapPhonebookDao 将 使用 Spring 容器的 IoC 或使用为该目的定义的 Bean 读取要使用的数

凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站: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号