快速业务通道

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

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-14
分中讲解过 TransactionProxyFactoryBean。现在是时候来查看一下它是如何实现事务所需的核心功能的 。并且如您所见,您可以向它插入任何事务管理程序并使其相互协作。需要定义一个目标对象,在这个目 标对象上事务应该被应用到目标属性内。将使用在 第 3 部分 中定义的 phonebookJdbcDataProvider Bean 实现此操作。在那里还可以学到定义此 Bean 和其他 Bean 向 Derby 数据库读取和写入数据。

最后而且也是最重要的一步,定义 transactionAttributes。事务属性包含需要使用哪些事务语 法的定义。此处就是 把事务应用到以 add 为开头的所有方法中。PROPAGATION_REQUIRED 表示支持当前 的事务或创建一个新事务(如果没有)。那一行中的最后一个条件告诉事务管理程序在出现异常时回滚事 务。减号表示回滚;如果在出现异常时仍要提交,则使用加号(+)。

这就是将事务引入应用程序所 需完成的全部工作。

构建并运行

全部完毕。运行 Ant 来构建并创建 WAR 文件。使用 Geronimo 中的 Deploy New 工具部署该文件。

让浏览器指向新页面: http://localhost:8080/phonebook/home-aop.jsp。

将获得同样一个主页,但这一次它是围绕事 务的。应当亲自尝试添加并查看新条目。下面是一些用于测试事务管理程序的提示:

在 Add New Entry 页面中添加所有字段;应当会看到所有信息都返回到主页列表中。

不输入名字或姓氏。将 会看到一条错误消息,并且在后端,事务会被回滚。可以通过查看主页或数据表本身加以验证。

最后也是最重要的一个测试是添加名字和姓氏并将其他所有字段留空。将会再次看到错误消息,事务也将 会被回滚。但如果还记得数据库表定义和 AddEntry() 方法的 SQL 语句,就可以使用它们把数据插入第 一张表中 —— FirstName 和 LastName,然后把其余数据添加到第二张表中。有两次插入操 作,因此如果在第二次插入时出现异常,事务管理程序将回滚最后一次提交的 SQL 语句。

至此 AOP 就全部介绍完了。完成了向应用程序中定义并添加两个方面,现在将要添加 SWF。

Spring Web Flow

SWF 系统允许捕捉 UI 流程作为独立模块。这些模块可在各种系统中重用。这里将改用 SWF 来定义应用程序的导航流程。

在 SWF 中,每个流程都是一个有限状态机 (FSM),其中包含状 态和转换。状态表示执行一些动作或显示给用户以供用户输入的视图。开始先定义 phonebookFlow.xml 文件。此文件将包含流程定义。

注:在流程定义中将不定义动作;那是高级主题。

然后将 对 JSP 表单做一些小改动,并查看其运行情况。

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

时间:2011-10-13 IBM Arun Chhatpar

添加 SWF

现在可以将静态流程和硬编码 流程改为使用 SWF 声明性地定义。可以通过三个步骤来实现:

在 XML 文件中定义应用程序的 Web 流程。

定义 XMLFlowFactory Bean 在 ApplicationContext 中访问此流程。

执行此 流程。

第一步是在 XML 文件中定义流程。清单 7 显示了用于本应用程序的这一流程。

清 单 7. PhonebookFlow.xml 为应用程序定义流程

<?xml version="1.0"  encoding="UTF-8"?> <!DOCTYPE flow PUBLIC "-//SPRING//DTD WEBFLOW 1.0//EN"     "http://www.springframework.org/dtd/spring-webflow-1.0.dtd"> <flow start-state="showPhonebook">   <!-No Action Processing  plugged in so far. Just getting the flow in place first -->    <view-state id="showPhonebook" view="home-dao">     <transition  on="goToAddEntry" to="addEntry"&g

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

分享到: 更多
的内容动态改变的行高
  • Photoshop签名教程:古典风格动漫人物
  • 首个政务微博开通“.中国”域名
  • Photoshop磨皮教程:美丽的狐狸精
  • 在Media Services中发布和播放方式介绍与应用(1)
  • 出色表现 玩转Powerpoint演示文档播放技巧
  • [实战虚拟化]测试Hyper-V 2.0对于SUSE Linux的支持
  • 精通数据库系列之入门-基础篇1
  • ComboBox下拉框绑定HashTable
  • Struts1.x系列教程(4):标签库概述与安装 - 编程入门网
  • Photoshop常用快捷键大全
  • Sql表数据操作
  • Photoshop制作有划痕的电影海报文字
  • 一个JAVABean的小例子 - 编程入门网
  • ASP类库之查询翻页优化
  • .com域名持有者被要求审核资料真伪
  • 招工程师
  • Linux的安装
  • 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号