快速业务通道

用Spring Web Flow和Terracotta搭建Web应用 - 编程入门网

作者 佚名技术 来源 NET编程 浏览 发布时间 2012-06-19
到其它节点。

这个架构是中心辐射的,也就是有一个管理客户端的中心调度器。在这里客户端就是你配有Terracotta for Spring 运行时的普通应用。调度器不是单点失败的,但你可以配置一组备用调度器,并在主调度器崩溃时选择一个来接替。你也可以独立于客户端,对调度器进行集群扩展。

构建一个高可用的有状态web应用

这里我们使用一个叫Sellitem的示例应用来推动讨论并展示给大家:

如何使用Spring Web Flow来构建一个有状态基于会话的web应用。

如何使用Terracotta for Spring来声明式集群有状态应用。

Sellitem示例应用可以在Spring Web Flow的发布版本中找到。(更多信息见文章末尾的“Resources” 章节)

使用Spring Web Flow实现一个有状态Web应用: Sellitem

Sellitem是展示结合了有条件转移、会话域、流程执行转向和延续性的示例应用。用户在几个页面间导航,可以定义货物的价格、可以销售的货物数量、折扣比率、送货详情(如果需要)和最后查看所有信息。

用Spring Web Flow和Terracotta搭建Web应用 - 编程入门网

我们不会通读应用的所有源码,而是主要介绍一些关键概念,如怎么配置Spring Web Flow输出的不同标准服务(Bean)和怎么定义页面流转(使用针对页面流转的Spring Web FlowDSL的XML版本)。

在Spring MVC中配置DispatcherServlet

应用的入口是一个标准的Spring MVC DispatcherServlet,它在web.xml中注册并在web application context中映射到*.htm。

<servlet>    <servlet-name>sellitem</servlet-name>    <servlet-class>      org.springframework.web.servlet.DispatcherServlet    </servlet-class>    <init-param>      <param-name>contextConfigLocation</param-name>      <param-value>       /WEB-INF/sellitem-servlet-config.xml       /WEB-INF/sellitem-webflow-config.xml      </param-value>    </init-param> </servlet> <servlet-mapping>    <servlet-name>sellitem</servlet-name>    <url-pattern>*.htm</url-pattern> </servlet-mapping>

用Spring Web Flow和Terracotta搭建Web应用(4)

时间:2011-02-05 infoq Jonas Bonér & Eu

DispatcherServlet配置在Spring的配置文件sellitem-servlet-config.xml和sellitem-webflow-config.xml中。 sellitem-servlet-config.xml中有一个映射到"/pos.htm"的控制器,它将所有该URL的请求转发到Spring Web Flow系统(它的入口是一个流程执行器):

<bean name="/pos.htm" class="org.springframework.webflow.executor.mvc.FlowController">

<property name="flowExecutor" ref="flowExecutor" />

配置flow executor和flow registry beans

Spring flowExecutor bean配置使用一个flowRegistry bean来执行"/WEB-INF/flows/"目录中的基于XML的流转定义。

<flow:executor id="flowExecutor" registry-ref="flowRegistry"/> <flow:registry id="flowRegistry">    <flow:location path="/WEB-INF/flows/**-flow.xml" /> </flow:registry>

定义页面流转

剩余的逻辑在我们已经注册的flowRegistry bean的流转定义中。(参照前面的''配置flow executor和flow registry beans章节)。

在深入流转实现细节前,我们先看一下页面流转的状态图(如下图)。

用Spring Web Flow和Terracotta搭建Web应用 - 编程入门网

从上面我们可以看到流转在结束前经过了几个步骤,在决定销售是否需要送货时有一个决策状态。

一个很好的针对上面导航规则的初始

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