Apache Geronimo和Spring 框架,第4部分 - 编程入门网
分中讲解过 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 为应用程序定义流程
|
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |