用Spring Web Flow和Terracotta搭建Web应用
这个架构是中心辐射的,也就是有一个管理客户端的中心调度器。在这里客户端就是你配有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输出的不同标准服务(Bean)和怎么定义页面流转(使用针对页面流转的Spring Web FlowDSL的XML版本)。
在Spring MVC中配置DispatcherServlet
应用的入口是一个标准的Spring MVC DispatcherServlet,它在web.xml中注册并在web application context中映射到*.htm。
sellitem
org.springframework.web.servlet.DispatcherServlet
contextConfigLocation
/WEB-INF/sellitem-servlet-config.xml
/WEB-INF/sellitem-webflow-config.xml
sellitem
*.htm
DispatcherServlet配置在Spring的配置文件sellitem-servlet-config.xml和sellitem-webflow-config.xml中。 sellitem-servlet-config.xml中有一个映射到"/pos.htm"的控制器,它将所有该URL的请求转发到Spring Web Flow系统(它的入口是一个流程执行器):
配置flow executor和flow registry beans
Spring flowExecutor bean配置使用一个flowRegistry bean来执行"/WEB-INF/flows/"目录中的基于XML的流转定义。


















文章评论
共有 位CH网友发表了评论 查看完整内容