Spring Web Flow Bean 作用域与 JSF

工程 | Ben Hale | 2007 年 5 月 8 日 | ...

最近我刚刚完成了 Spring Web Flow 中的一个有趣问题。这个问题(SWF-163)涉及为 Spring Web Flow 的内部作用域添加 Spring 2.0 bean 作用域支持。实现本身并不是那么有趣(毕竟 Scope 接口很容易实现),但我还是想特别提一下如何在你的应用程序中使用类似这样的功能。

Spring 2.0 作用域

在 Spring 1.x 中,我们有 singleton 和 prototype bean 作用域的概念,但表示法是固定的,使用 singleton="[true | false]" 并不是特别具有描述性。因此在 Spring 2.0 中,这种表示法从 XSD 风格的配置中移除,现在你可以看到更清晰的表示法 scope="[singleton | prototype | ...]"。Spring 本身增加了三种 bean 作用域;requestsessionglobalSession,它们与 Web 应用相关。

随着 Spring Web Flow 1.1 的最新快照发布,我们现在看到了三个主要的 Web Flow 作用域的 bean 作用域,即 flashflowconversation


<bean id="sale" class="org.springframework.webflow.samples.sellitem.Sale…

Spring Batch

工程 | Dave Syer | 2007 年 5 月 7 日 | ...

引言

我一直在与几家客户合作开发一款名为 Spring Batch 的新产品。其目标是提供工具和应用程序,以支持企业环境中的批量处理。Spring Batch 是 Spring Portfolio 的一部分,其首个版本将在 Spring 2.1 发布系列中发布。

构建一些原型代码的最初动力实际上独立地来自于一些 Interface21 客户。这提供了一些有用的额外细节和实现上的约束,以便能够应用于客户提出的实际问题。我希望本文…

强大组合:SCA、OSGi 和 Spring

工程 | Adrian Colyer | 2007 年 5 月 1 日 | ...

不,这不是我的标题,它实际上是 Open SOA collaboration 最近发布的一份白皮书的标题。引用白皮书随附的新闻公告:

“根据用户反馈,OSOA Collaboration 正在发布一份白皮书,重点介绍了 SCA、Spring 和 OSGi 技术的强大组合,旨在帮助开发人员简化基于 SOA 方法构建应用程序所需的关键服务的创建和组合。”
Open SOA collaboration 开发服务协作架构 (SCA) 规范,其合作伙伴包括 BEA、IBM、IONA、Oracle、Red Hat、SAP、Siemens、Sun、Tibco 等。因此,当这个组织开始围绕“SCA、Spring 和 OSGi 的强大组合”展开讨论时,这无疑是对 Spring Framework 以及我们在 Spring OSGi 项目中所做工作的极大认可。

这份白皮书简要概述了 SCA、OSGi 和 Spring,然后描述了它们如何协同使用。引用摘要中的内容:

“SCA、OSGi 和 Spring 都是 Java 程序员可以使用的有用且强大的工具。在我们迈入的新的面向服务的世界中,将 SCA、OSGi 和 Spring 结合使用,为从一组简单的 Java Beans 构建服务实现提供了强大的能力,这些实现使用很少的 API,具有托管依赖项、版本控制和动态更新功能,并能够与其他使用 Java 或其他语言编写的服务组件以及存在于分布式系统网络中并使用各种通信方法的组件进行组合。

简单性、灵活性、可管理性、可测试性、可重用性。企业开发人员的关键组合。”

下周我将在 JavaOne 会议上与 IBM 的 Mike Edwards 共同介绍 SCA 和 Spring:会议 TS-8194,“Spring 和服务组件架构…”

从 Amazon S3 查询和下载

工程 | Ben Hale | 2007 年 4 月 30 日 | ...

上一篇文章中,我描述了我们如何使用自定义 ANT 任务上传 Spring portfolio 中基于 ANT 的项目的每晚快照。在本文中,我将描述我们如何使用 Amazon S3 为每个项目的快照生成页面并允许用户下载快照。

正如我在上一篇文章中提到的,S3 主要用作 REST-ful 服务。这意味着虽然我使用 Java 完成上传部分,但我可以自由使用其他语言完成下载部分。在这种情况下,我选择使用 PHP,因为它在我正在使用的服务器上已经可用,并且是…

使用自定义 ANT 任务上传到 Amazon S3

工程 | Ben Hale | 2007 年 4 月 25 日 | ...

一个稳健的 CI 结构带来的有趣副作用之一是,当一切运行可靠时,新的问题就会开始浮现。在 Spring 的 CI 系统开始顺利运行后不久,我们在 static.springframework.org 上的偶尔出现的空间和带宽问题变得更加突出。Colin Sampaleanu 早些时候研究过如何缓解其中一些问题,并决定使用 Amazon S3

Amazon S3 是 Amazon Web Services 体系的一部分,提供了一种极其廉价的在线文件存储服务。“极其廉价”是什么意思?嗯,从网站上看,它似乎…

Spring 的精髓

工程 | Rossen Stoyanchev | 2007 年 4 月 24 日 | ...

上周我在亚特兰大的 Barnes & Noble 书店时发生了这件事。我在计算机区转悠,开始浏览书名。头微倾时,我偶然听到了一段关于工作职位的对话。我没有主动去听,但我知道一方在推销职位,另一方在咨询。

几分钟后,只剩下我和那个正在物色人才的家伙了。我确信他会开口说话。不久之后,他说‘你是做 J2EE 的吗?’于是对话开始了。他问我工作情况。他不知道 Interface21,但一听说这是那家公司…

Spring Web Services 中的 XPath 支持

工程 | Arjen Poutsma | 2007 年 4 月 23 日 | ...

继我关于 WS-DuckTyping 的文章之后,我想展示一下 Spring Web Services 为 XPath 提供了哪些支持,这应该会很有趣。其中一些功能现在已经可用,但大部分将包含在本月晚些时候发布的 RC1 版本中。本文将使用 Rusty Harold 所著 Effective XML第 35 条中定义的联系人 xml 文件。

XPathExpression

一个已经可用了相当一段时间的选项是 XPathExpression。它是对已编译 XPath 表达式的抽象,例如 Java 5 XPathExpression 和 Jaxen XPath

最近,我添加了 XPathExpressionFactoryBean,以便更容易地将 XPath 表达式注入到你的 bean 中,如下所示


<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/200…

Spring Web Flow 为 JSF 开发人员提供了什么

工程 | Keith Donald | 2007 年 4 月 21 日 | ...

Spring Web Flow,非常类似于 Spring Framework 本身,是一种独特的集成技术。我们的大多数用户将其视为一个通用的 ApplicationController,可以嵌入到任何环境中。我们支持基于 Servlet 和 Portlet 的应用程序,并提供与主流 Web 框架 Struts、Spring MVC 和 Java Server Faces 的集成。我甚至知道有些团队在 Flex 环境中使用 Spring Web Flow。在这些环境中,Spring Web Flow 都集成为实现导航逻辑和管理应用程序状态提供了更好的模型。

我们的用户喜欢这样,因为…

Spring 项目 CI 构建

工程 | Ben Hale | 2007 年 4 月 18 日 | ...

在过去的几周里,我和 i21 的同事 Costin Leau 一直致力于改进 Spring 项目的持续集成过程。当我们开始时,我们在 Cruise Control、Continuum 甚至自定义 cron 作业中运行独立的构建。我们很难让现有工具在所有构建上满足我们的需求,这时我和 Costin 不约而同地发现了 Atlassian 的新产品 Bamboo

大约 10 分钟后,我们就搭建并运行了 Spring CI 构建。这听起来可能不多,但由于其规模,Spring 并不能很好地…

Spring Web Flow 1.0.2 发布

发布 | Keith Donald | 2007 年 4 月 11 日 | ...

亲爱的 Spring 社区,

我们很高兴地宣布 Spring Web Flow 1.0.2 已经发布。这是一个错误修复和增强版本,解决了针对 Spring Web Flow 1.0 系列报告的所有错误,并显著增强了 Spring Web Flow 对 Java Server Faces (JSF) 用户的支持。我们建议从旧版本升级到此版本。

 

Spring Web Flow 是一个下一代 Java Web 应用程序控制器框架。该框架提供了一个强大的系统,用于在各种环境中一致地实现导航逻辑和管理应用程序状态。

此版本的新特性和值得关注之处

Spring Web Flow 1.0.2 是一个坚实、稳定的版本,可作为现有用户的直接替代品,并且包含几项值得关注的增强功能。其中三项增强功能尤其值得更详细地说明

显著增强的 JSF 集成

现在作为 JSF 扩展使用时,Spring Web Flow 提供

  • 一个 NavigationHandler,它为 JSF 开发人员带来了 Web Flow 导航系统的全部强大功能。该系统允许实现动态导航规则,并开箱即用地解决了臭名昭著的后退按钮问题。
  • 一个状态管理系统,为 UI 组件提供对 Web Flow 对话数据作用域中管理的 bean 的完全访问权限,包括“conversation”、“flow”和“flash”作用域。这些作用域补充了 JSF 的默认作用域,对于使用 Ajax4JSF 等库应用 Ajax 技术的交互式 Web 应用程序特别有用。
  • 对所有主要 JSF 视图技术的原生支持。使用 Spring Web Flow 1.0.2,参与流程的视图是标准的 JSF 视图,无论它们是使用 JSP 还是 Facelets 构建的。现在任何 JSF UI 组件都可以无缝地绑定到任何对话作用域中管理的 bean。

请运行并查看 sellitem-jsf 示例,以快速评估这些增强功能的实际效果。它们显著提高了在 JSF 环境中使用 Spring Web Flow 的便捷性,并且是一个更大努力的开端,该努力将持续到 1.1 版本及以后。

扩展的实用文档

参考手册中现在提供了 Spring Web Flow 每个示例应用程序的完整演练。这些演练将引导您了解每个示例的实现过程,并在此过程中解释最佳实践和设计注意事项。下载发布版本后,请参阅'Practical' 章节,了解如何在 IDE 中运行示例应用程序。

Spring IDE 2.0 集成

即将发布的 Spring IDE Eclipse 插件 2.0 版本具有图形化的 Web Flow 编辑器和 XML Flow 定义编辑器。从 Spring Web Flow 1.0.2 开始,每个示例应用程序都已启用 Spring IDE 2.0,以便您可以轻松评估这些工具的进展情况。要评估 Spring IDE 2.0,只需将示例项目导入 Eclipse 并从每晚更新站点安装最新版本的 Spring IDE 2.0 插件。

Spring Web Flow 1.1 路线图 

Spring Web Flow 1.1 的工作已经开始,预计将在 JavaOne 上发布第一个候选版本。基于 1.0.2 版本,此版本将提供主要的全新功能,包括对话式持久化上下文支持、Acegi Security 集成、统一 EL 集成、集成的 Spring 2.0 自定义作用域、增强的基于 Java 的流程支持以及流程组合和继承支持。

特别感谢 Jeremy Grelle、Rossen Stoyanchev 和 Christian Dupuis 为此版本做出的重大贡献。成为 Web Flow 社区的一份子,这真是激动人心的时刻!

Keith Donald - Interface21
Erwin Vervaet - Ervacon
Spring Web Flow 开发负责人 

获取 Spring 时事通讯

订阅 Spring 时事通讯保持联系

订阅

领先一步

VMware 提供培训和认证,助您加速前进。

了解更多

获取支持

Tanzu Spring 通过一项简单的订阅即可为 OpenJDK™、Spring 和 Apache Tomcat® 提供支持和二进制文件。

了解更多

近期活动

查看 Spring 社区的所有近期活动。

查看全部