用Spring Web Flow和Terracotta搭建Web应用

Spring Web Flow 引入了几种有状态数据域:request、flash、flow和conversation等,这让你能用新的方式来开发有状态Web应用。它也提供了定制应用状态管理的扩展点。

Terracotta for Spring是通过在多个JVM集群来给基于Spring的应用提供高可用性的运行时。它给Spring Web Flows的所有域都提供了透明的声明式集群服务(普通的Spring beans同样适用)。

在这篇文章中我们会首先给你一个Spring Web Flow和Terracotta for Spring的总体介绍。然后会向你展示如何联合使用这些技术来进入构建有状态、基于会话、可扩展和高可用的Web应用的新领域。

什么是Spring Web Flow?

Spring Web Flow是Spring Framework中的web应用组件,它提供了一种编写有状态和基于会话的web应用的简便手段。Spring Web Flow 使得逻辑流程成为web应用中的一等公民,它能让你定义为自包含模块,以独立于应用的其它部分来配置和重用。它不依赖于框架从而能够方便的与可选的web应用框架一同使用,比如Spring MVC、Struts或者JSF等。

页面流转使用一种领域定义语言(DSL)来配置,这个语言专门开发用来定义和组合页面流转。目前的实现方式是XML和Java.

Spring Web Flow引入了能满足多种用户案例和需求的几种有状态数据域:request、flash、flow和conversation,这给你开发有状态web应用提供了很大的灵活性和能力。

这里是1.0 release中最有趣特性的快速概要。(来自release notes on InfoQ):

在一个地方而不是把逻辑分散在很多地方来定义应用任务的所有控制逻辑,比如一个搜索流程。

把简单的流转组合在一起来创建富控制模块。

使用自然和面向对象的线性编程模型,而不是冗长的的if/else块来定义严格的用户导航规则。

但流转结束或过期时自动清除你在流转执行中分配的内存。

在使用你选择的基础web框架的Servlet环境中Deploy一个可执行的流转。

改变web框架(比如Struts、Spring MVC、JSF及其它)而不用修改流转定义。

和环境一起改变而不需要修改你的流转定义, 比如从JUnit测试到Portlet。

开发时在不重启容器的情况下不断完善你的应用导航规则。

自动正确响应浏览器按钮(后退、前进、刷新)而不需要定制编程。

在4个受管理域中存储任务数据:request、flash、flow、和、conversation等,每个都有自己的独特语义。

脱离容器单独测试流转。能在部署前确保应用控制逻辑能正常运作。

使用Spring IDE 2.0进行可视化编辑你的流转导航逻辑图

听上去很有趣?到目前为止还仅仅是概念和理论,但我们很快会看到这些都能在实践中应用。所以请多等一会。

企业对扩展性和高可用性的需求

集群在企业应用开发中变得越来越重要,开发人员经常会碰到这样的问题:

我们如何在一个节点上扩展来提高应用的可扩展性?

如果保证高可用性和消除单点故障,如何确保我们能满足客户的SLAs(Service Level Agreement)?

时间: 2024-12-03 02:13:38

用Spring Web Flow和Terracotta搭建Web应用的相关文章

web服务器-如何自己搭建Web服务器,微信服务号的开发者中心需要Web浏览器我该如何做?

问题描述 如何自己搭建Web服务器,微信服务号的开发者中心需要Web浏览器我该如何做? 如何自己搭建Web服务器,微信服务号的开发者中心需要Web浏览器我该如何做? 解决方案 apache等可以方便搭建 解决方案二: nginx+php+mysql或者apache+php+mysql

Spring Web Flow 2中流管理的持久化:事务性Web流的持久化策略

Spring Web Flow 是一种新颖的 Java Web 框架,它扩展了 Spring MVC 技术.使用 Spring Web Flow 的应用开发围绕着定义为 Web 流的用例展开. 将开发工作区根据 Web 流进行组织使开发体验更有意义.更具上下文.此外,Spring Web Flow 对 JPA/Hibernate 持久化的支持也是其最重要的服务器端改进之一. 尽管 SpringSource 和 Spring Web Flow 项目组详细介绍了 Spring Web Flow,但是

Spring Web Flow 2.0入门

实现示例应用的购物车流程,可按以下步骤操作: 在 /WEB-INF/lib 目录下导入相关类库 在 webmvc-config.xml 中添加与 Spring Web Flow 集成的配置 添加 Spring Web Flow 的配置文件 webflow-config.xml 添加 flow 定义文件 shopping.xml 添加三个 jsp 页面 修改 index.jsp 在 /WEB-INF/lib 目录下导入相关类库 将以下几个 jar 包导入 /WEB-INF/lib 目录: org.

spring mvc-在Eclipse中使用Maven+Spring mvc +cxf搭建Web Service

问题描述 在Eclipse中使用Maven+Spring mvc +cxf搭建Web Service 请各路大神给出详细步骤,包括项目怎么建.各种配置文件怎么配.Java类里面怎么写(可以是一个简单的hello world)等等,最好有截图,非常感谢!

Intellij IDEA采用Maven+Spring MVC+Hibernate的架构搭建一个java web项目

原文:Java web 项目搭建 Java web 项目搭建 简介 在上一节java web环境搭建中,我们配置了开发java web项目最基本的环境,现在我们将采用Spring MVC+Spring+Hibernate的架构搭建一个java web项目 Spring MVC+Spring+Hibernate结构介绍如下: Spring MVCSpring MVC的职责是作为web层框架,实现了我们常见的MVC模式 SpringSpring 作为服务层,利用自身特性IOC.AOP,提供数据从DA

Spring Boot快速搭建Web工程

先想一下,正常我们想要创建一个web服务,首先需要下载tomcat,创建web工程,配置各种web.xml,引入spring的配置,各种配置文件一顿倒腾.....下载有了spring boot,你创建一个web工程只需要一个java类,甚至都不需要下载tomcat,直接右键执行就能启动一个web服务.听起来就让人感觉兴奋! 最近我也是工作有需要,需要新建一个微服务的模块.正好公司比较开放,支持搞搞新技术,于是就在同事的怂恿下采用Spring Boot创建了一个工程.使用后发现如果熟练掌握一些配置

Groovy轻松入门——Grails实战之Web Flow篇

Spring Web Flow是Spring家族中的一位成员,他能简化Web应用的开发.在Grails0.6中就集成了Spring Web Flow这一Web应用开发利器.下面通过一个实例向大家展示一下在Grails中如何方便的使用Spring Web Flow. 1,"grails create-app WebFlowDemo",输出如下: D:\_DEV\grails_apps>grails create-app WebFlowDemoWelcome to Grails 0.

Grails+Xfire 搭建Web Service环境

Grails 加上Xfire plugin 搭建web Service 环境.总体上来说还是比较方便的.没有直接使用j2ee+xfire那么多的繁琐xml配置.Grails再一次体现了敏捷开发的便捷性.<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />     首先要给自己的Grails Application 应用工程装上Xfire 的插件.可以选择先下载zip包再安装也

搭建Web服务器 绿色PHP环境套件e2php

e2php是Windows下的Apache + PHP + MySQL + Zend + eAccelerator + PhpMyAdmin的绿色环境套件,免安装,几秒钟即可搭建Web服务器. 如何使用e2php: 1.先点击下载e2php解压包,解压到任意目录(不要含中文路径). 2.运行目录内的e2php.exe执行文件,在电脑桌面右下方(系统托盘)处可看到该程序图标. 3.鼠标左键单击该程序图标,将会出现菜单选项. 启动Apache,仅启动Apache服务,重启,停止略,启动MySQL,仅