悉尼 Spring 用户组第二次会议计划

工程 | Ben Alex | 2006年7月29日 | ...
在我上一篇博客文章中,我曾承诺会提供下一次用户组会议的详细信息。在寻找合适的场地后,现已确定于2006年8月7日星期一在悉尼乔治街200号的 Cliftons 举行。我们计划了两次演讲。首先我将介绍 Spring 2.0 命名空间,然后 Infocomp 的 Ramon Buckland 将介绍 Spring 的 SOA 和 JBI。访问 Springframework.org 获取完整详情。

希望届时能见到您。

欢迎来到 Interface21 团队博客

工程 | Keith Donald | 2006年7月7日 | ...

随着 Interface21 作为一家全球性公司不断发展,我每天都越来越清楚一件事

我们确实拥有一批才华横溢、积极进取的领导者,他们在商业和技术方面都有很多话要说。
话虽如此,我们想要做的一件事就是为我们的员工提供一个方便、易于访问的渠道,来分享他们的见解、经验、想法和创新。经过一番幕后努力,我想我们做到了。欢迎来到 Interface21 团队博客。

在这里,您将深入了解 i21 的最新动态,包括我们正在做什么、我们正在解决什么问题、我们未来的方向以及我们一路走来学到了什么。您会看到很多多样性,因为我们的公司正在做很多事情,从领导 Spring Framework 和 Spring 系列产品的开发到在五个主要的国际市场扩展业务。

整个博客可通过 RSS 订阅。此外,您还可以通过订阅以下内容来关注您最喜欢的主题…

Spring 2.0 RC2 发布

发布 | Juergen Hoeller | 2006年7月6日 | ...

亲爱的 Spring 社区:

我们很高兴地宣布 Spring 2.0 RC2 已发布。  下载 | 文档 | 更新日志

这是 Spring 2.0 最终版本之前的第二个发布候选版本。它引入了多项错误修复和细微改进,特别是在 AOP 框架和 JPA 支持方面。请参阅更新日志了解详情。在即将发布的 2.0 RC3 版本中,还将解决一些已知问题;详情请参阅我们的 JIRA 路线图。

请使用此版本尝试您的应用程序,并告知我们您可能遇到的任何问题!需要强调的是,Spring 2.0 提供了与 Spring 1.x 系列的向后兼容性。  Spring 2.0 还继续支持 JDK 1.3+J2EE 1.3+(甚至 J2EE 1.2+,除了 JSP 标签和 EJB 支持)。兼容性对我们的用户群至关重要,我们致力于提供它。因此,我们也对在任何此类平台上可能出现的兼容性问题感兴趣。

感谢各位对本次发布的所有反馈。  我们期待在 2.0 GA 发布日期前收到更多反馈!

祝好,

Juergen Hoeller
Spring 2.0 产品开发负责人

Spring Web Flow 1.0 RC3 发布

发布 | Keith Donald | 2006年6月26日 | ...
 

亲爱的Spring社区,

我们很高兴地宣布 Spring Web Flow (SWF) 1.0 RC3 (发布候选版3) 已发布。  下载 | 文档 | 更新日志

这个稳定版本包含了错误修复和次要改进。   目前我们预计这将是 Spring Web Flow 1.0 最终版本发布前的最后一个候选版本,最终版本即将发布。  值得注意的改进包括...

值得注意的改进

改进了流程异常层次结构。  总体而言,异常层次结构现在更清晰地组织了从流程定义访问(FlowLocatorException)到运行时流程执行(FlowExecutionException)和执行持久性(FlowExecutionRepositoryException)的故障类别。

 

改进了在 Portlet 环境中使用后退按钮的支持。  结合基于延续的存储库,SWF 在 Portlet 环境中支持在流程处于活动状态时完全使用浏览器导航按钮(后退、刷新)。  当流程执行终止时,浏览器刷新将自动触发新的执行启动。

更简单的默认 JSF 视图映射。  现在,默认情况下,SWF 视图名称应与 JSF 视图 ID 完全对应。您将在 sellitem-jsf 示例中看到此默认设置——请注意视图是如何像标准 JSF 导航处理程序一样被引用为 "/priceAndItemCountForm.jsp" 的。  这允许自然地支持其他 JSF 视图技术,例如 Facelets,并且对于 JSF 开发人员来说是一个更自然的默认设置。  如果您需要自定义 SWF 到 JSF 视图映射,请将自定义 ViewIdMapper 插入到您的 FlowPhaseListener 中。

示例应用程序简化。  我们简化了 fileupload、flowlauncher、birthdate 和 sellitem 示例,以利用 Spring Web Flow 的最新功能和最佳实践。

潜在的用户影响变更

在通往 1.0 最终版本的道路上,1.0 RC3 存在一些潜在的用户影响变更。  以下部分将对此进行说明。

为了简化,移除了 FormAction 属性 "validateUsingValidatorMethod"。  经验表明,此属性是新用户的困惑来源。  作为更好的替代方案,要在不进行验证的情况下执行数据绑定操作,只需从您的流程定义中调用 "bind" 动作方法即可。  当您需要分步验证时,只需调用 "bindAndValidate" 或 "validate",并将 "validatorMethod" 属性设置为特定的验证器方法即可。  请参阅 sellitem 示例。

StateExceptionHandler 已重命名为 "FlowExecutionExceptionHandler"。 这会影响自定义处理程序实现。  要升级,只需实现新的接口;其签名在逻辑上是相同的。

FlowExecutorImpl 的 "redirectOnPause" 属性现在接受布尔值而不是 RedirectType 枚举。  从 1.0 RC2 开始,SWF 中只有一种重定向类型——流程执行重定向。  将此标志设置为“true”会在每次流程执行通过进入视图状态而暂停时触发它。  请参阅 Numberguess 或 sellitem 示例。
--------

开始使用 Spring Web Flow 的最佳方法之一是查看和演练示例应用程序。  我们建议从一开始就查看所有示例,并根据需要补充参考手册材料。1.0 RC3 版本附带了十个示例应用程序,每个都展示了不同的产品功能集。  这些示例是:

1. 电话簿 - 展示大多数功能(包括子流程)的原始示例
2. 销售商品 - 展示带条件转换、流程执行重定向、会话作用域和延续的向导
3. 流程启动器 - 展示启动和恢复流程的所有可能方式
4. 商品列表 - 展示 REST 风格 URL 和内联流程
5. 运费 - 展示 Spring Web Flow 与 Ajax 技术结合(感谢 Steven Devijver)
6. 猜数字 - 展示有状态 bean 和“单键”流程执行重定向。
7. 生日 - 展示 Struts 集成
8. 文件上传 - 展示多部分文件上传
9. 电话簿-Portlet - Portlet 环境中的电话簿示例
(请注意流程定义没有变化)
10. 销售商品-JSF - JSF 环境中的销售商品示例

祝您使用愉快!

Spring Web Flow 团队

Keith Donald
Erwin Vervaet
Juergen Hoeller
Colin Sampaleanu
Rob Harrop

Spring 2.0 RC1 发布

发布 | Juergen Hoeller | 2006年6月21日 | ...

亲爱的 Spring 社区:

我们很高兴地宣布 Spring 2.0 RC1 已发布。  下载 | 文档 | 更新日志

这是 Spring 2.0 在过去六个月发布五个里程碑版本后的第一个发布候选版本。这个稳定版本正在等待广泛的用户反馈,目标是在七月初发布 2.0 最终版本。

Spring 2.0 的主要新主题是:

  1. 简化配置 - 您会发现您编写的代码总量大大减少,以配置您的应用程序。  您编写的代码是高级的、领域特定的,受益于智能默认值以及丰富的验证和工具支持。

  2. 强大的 AOP 统一 - 您可以使用 AspectJ 简洁地将切面编织到您的对象之前、之后和周围,从而应用自定义行为,同时仍然受益于 Spring AOP 运行时的简单性。

  3. JSR 220 Java Persistence Architecture (JPA) - 为您提供持久性提供者实现的选择。  Spring 是第一个在 JEE 和 JSE 环境中都支持 JPA 的框架,并且两者之间具有完全的可移植性。

  4. 异步 JMS 消息传递 - 消息驱动的 POJO 为 JSE 环境带来了轻量级的异步组件,并可选择 JMS 提供商。

  5. JSR-168 Portlets - Spring Portlet MVC 提供了一个用于开发 JSR 168 Portlet 的框架,其中包括与 Spring Web Flow 集成,以协调用户交互。

需要强调的是,Spring 2.0 提供了与 Spring 1.x 系列的向后兼容性。  兼容性对我们的用户群至关重要,我们致力于提供它。

这些领域的其他主要新功能包括...

配置简化
  • 基于 XML schema 的 bean 定义,以及用于简化常见配置任务的开箱即用的 XML 命名空间
  • 支持应用程序上下文中的扩展 bean 作用域,主要目标是 Web 请求和会话作用域
  • Bean 定义增强:bean 类的延迟加载、集合合并和智能错误消息
AOP
  • 基于 XML 模式命名空间的简化 AOP 配置
  • 支持 AspectJ 切点表达式语言和 @AspectJ 风格的切面
  • 支持对任何对象进行依赖注入,包括细粒度领域对象(基于 AspectJ)
持久化和 JPA
  • 增强的 JDBC 支持:命名 SQL 参数,基于泛型的 SimpleJdbcTemplate
  • 明确支持 Hibernate 3.1 和 3.2(同时保持与 Hibernate 3.0 的兼容性)
  • 支持 Java 持久化 API (JPA),包括完整的容器契约和类仪器
调度和消息传递
  • 用于提交异步工作的 TaskExecutor 抽象
  • 支持各种线程池,例如 Java 5 ThreadPoolExecutor 和 CommonJ WorkManager
  • 支持基于消息监听器容器的异步 JMS(“消息驱动 POJO”)
Web 应用程序开发
  • 基于约定的 Web MVC:控制器映射、模型属性名称
  • 用于 Spring Web MVC 和 Spring Web Flow 的 JSP 表单标签库
  • 全面支持 Portlet 环境,包括基于 DispatcherPortlet 的 Portlet 风格 MVC

... 以及更多细节方面的诸多改进。

要查看这些功能的实际应用,请查阅发布包中 samples/jpetstore 目录下的 JPetstore 参考应用程序。  更多详细信息请参阅参考文档的 2.0 新特性 部分。

我们将在未来几天与 Maven2 社区合作,将 2.0 RC1 上传到 Maven 仓库。

感谢 Spring 社区为本次发布提供的所有反馈。  我们期待您为 2.0 GA 发布日期提供更多反馈!

祝好, 

Juergen Hoeller
Spring 2.0 产品开发负责人

Spring Web Services 1.0 M1 发布

发布 | Arjen Poutsma | 2006年6月12日 | ...

亲爱的 Spring 社区:

我很高兴地宣布 Spring Web Services 1.0 M1 已发布。下载 | 文档 | 更新日志

此版本是 Spring-WS 的第一个里程碑版本:一个由 Spring 社区主导,专注于创建文档驱动的 Web 服务的项目。

Spring-WS 1.0 M1 包括:

  • 基于 Apache Axiom 的流式 SOAP 消息模型,
  • 与 Acegi 集成的 WS-Security 支持,
  • JAXB 2.0 marshaller 支持,
  • 自 0.9.1 以来发现的许多进一步的改进和问题修复。

详情请参阅更新日志

有关 Spring-WS 及其目标的更多信息,请参阅 Spring-WS 主页

Spring Web Flow 1.0 RC2 发布

发布 | Keith Donald | 2006年6月10日 | ...


 

亲爱的Spring社区,

我们很高兴地宣布 Spring Web Flow (SWF) 1.0 RC2 (发布候选版 2) 已发布。  下载 | 文档 | 更新日志

此版本包含错误修复和次要改进。   1.0 RC2 的新功能和值得注意之处包括...

新特性和值得注意的改进

支持以可配置的方式将新启动的流程执行输入从其调用环境传递。  默认情况下,所有请求参数都作为输入暴露。  流程可以选择使用其输入映射器将此输入映射到其自身的本地作用域。  此映射器定义了流程的输入契约,无论流程是作为顶层流程还是子流程启动,该契约都是一致的。

考虑以下请求 URL 作为示例:

https://:8080/flights/search-flow?flightNumber=12345

默认情况下,当访问此 URL 时,后台的 FlowExecutor 会将 "flightNumber" 请求参数放入一个 "输入映射" 中。  然后将该输入映射传递给 "search-flow" 的新执行。

在 search-flow 定义中

<flow start-state="executeSearch">
    <input-mapper>
        <mapping source="flightNumber" target="flowScope.flightNumber"/>
    </input-mapper>

    ...
</flow>
上述 <input-mapper> 定义了流程的输入契约,声明此流程支持 "flightNumber" 输入属性。  当启动时提供了 flightNumber,它将被映射到 "flowScope" 中,名称为 "flightNumber"。  映射器还能够在映射操作期间执行类型转换。

要自定义流程执行输入映射的填充,例如,从请求路径或某些其他外部源拉取属性,请配置 "FlowExecutorImpl.inputMapper" 属性。

支持在 JSR168 Portlet 环境中进行流程执行和外部重定向。  结合基于延续的存储库,这允许在 Portlet 环境中使用浏览器导航按钮(后退、刷新)。  此外,在 Portlet 环境中,我们现在暴露了一个 "globalSessionMap" 属性,用于访问 Portlet Session APPLICATION_SCOPE 中的属性。

一个新的存储库工厂名为 "SingleKeyFlowExecutionRepositoryFactory"。 该实现为每个持久化流执行生成一个唯一的标识符。  它对于实现 1.0 EA "会话重定向" 语义很有用——即每次 POST 后,REDIRECT-GET 都会访问一个稳定的 "流执行 URL",该 URL 中嵌入了常量流执行键。  请参阅 NumberGuess 示例以进行说明。

引入了一个独立的“会话”子系统,所提供的流执行仓库实现会委托该子系统来划定管理流执行状态的逻辑会话。  此会话子系统完全独立于 Spring Web Flow 的其余部分,可在 SWF 之外使用,并可能随着时间的推移发展成为独立的模块。  核心服务接口包括:

public interface ConversationService {
    public Conversation beginConversation(ConversationParameters parameters);
    public Conversation getConversation(ConversationId id);
    public ConversationId parseConversationId(String encodedId);
}


public interface Conversation {
    public ConversationId getId();
    public void lock();
    public void end();
    public Object getAttribute(String name);
    public void setAttribute(String name, Object value);
    public void removeAttribute(String name);
    public void unlock();
}
当启动一个新的流程执行并需要在一个请求之外持久化时,存储库会调用 "beginConversation" 来启动一个新的逻辑
会话,并将属性放置在会话作用域中以跟踪执行状态。  同样,当流程执行结束时,管理会话也会结束,并且任何分配的状态都将被清理。

未来,我们期望在这个系统中提供强大的功能,包括通过 JMX 进行会话监控和管理,以及会话历史和统计数据。  我们还期望证明它适用于 Spring Web Flow 之外的其他环境。  特别感谢 Juergen Hoeller 和 Ben Hale 在此可移植会话服务抽象设计中的帮助。


潜在的用户影响变更

在通往 1.0 最终版本的道路上,1.0 RC2 存在一些潜在的用户影响变更。  以下部分将对此进行说明。

在 spring-webflow-dtd 中,我们为了与其他属性和元素名称保持一致,将 '<action/>' 元素属性 'resultName' 和 'resultScope' 分别重命名为 'result-name' 和 'result-scope'

为了简化,移除了 FormAction 属性 "bindOnSetupForm" 和 "validateOnBinding"。  经验表明,这些属性很少使用  并且一直是新用户的困惑来源。  作为更好的替代方案,要在进入视图状态之前执行数据绑定操作,只需从您的流程定义中调用 "bind" 动作方法即可。  要计算是否应为 bindAndValidate 尝试进行验证,请重写单个 "validationEnabled(RequestContext)" 钩子。

移除了 FormAction 的 "exposeFormObject" 动作方法。  简单地使用 "setupForm" 即可,这是首选方法。

FlowExecutionRepository 和 FlowExecutor SPI 接口已简化。  更多的逻辑现在封装在 FlowExecutionRepository 之后,包括生成的 FlowExecutionKeys 的结构和格式。  此外,FlowExecutionRepository 现在严格负责管理持久化的流程执行,别无他事。  “会话”这一附加概念不再为 SWF 核心所知。  这意味着几点:

  • 整个存储库接口更简单,更易于创建具有自定义 FlowExecutionKeys 的自定义 FlowExecutionRepositories。
  • SWF 核心词汇更强:流程执行器调用流程执行来执行流程。  超过一个请求仍然活动的执行将被持久化到存储库中。
  • 默认的存储库实现选择委托给一个独立的“会话子系统”来跟踪由执行系统驱动的会话状态,但对该系统的依赖是完全封装和可选的。

FlowExecutor 接口是 SWF 的入口点,它也为调用者简化了。  它现在封装了复杂内部类型(如 EventIds 和 FlowExecutionKeys)的知识,因此总体上更易于使用。
FlowExecutor 接口,作为 SWF 的入口点,也为调用者进行了简化。  它现在封装了复杂内部类型(例如 EventIds 和 FlowExecutionKeys)的知识,因此总体上更易于使用。

同样,对显式“会话重定向”的支持已被移除。  这表示移除了 "conversationRedirect:"
“view”前缀和“CONVERSATION”RedirectType。  要在 1.0 RC2 中实现相同的逻辑重定向语义,只需将 FlowExecutor 配置为 redirectOnPause 类型 FLOW_EXECUTION 和 repositoryFactory 为
SingleKeyFlowExecutionRepositoryFactory。
--

Spring Web Flow 1.0 RC2 进一步完善了参考手册,提供了 50 页关于 SWF 使用的资料。  该手册以 HTML 和 PDF 格式在线提供。

开始使用 Spring Web Flow 的最佳方法之一是查看和演练示例应用程序。  我们建议从一开始就查看所有示例,并根据需要补充参考手册材料。1.0 RC2 版本附带了十个示例应用程序,每个都展示了不同的产品功能集。  这些示例是:

1. 电话簿 - 展示大多数功能(包括子流程)的原始示例
2. 销售商品 - 展示带条件转换、流程执行重定向、会话作用域和延续的向导
3. 流程启动器 - 展示启动和恢复流程的所有可能方式
4. 商品列表 - 展示 REST 风格 URL 和内联流程
5. 运费 - 演示 Spring Web Flow 与 Ajax 技术结合使用
(感谢 Steven Devijver)
6. 猜数字 - 演示有状态 Bean 和“单键”流程
执行重定向。
7. 生日 - 展示 Struts 集成
8. 文件上传 - 展示多部分文件上传
9. 电话簿-Portlet - Portlet 环境中的电话簿示例
(请注意流程定义没有变化)
10. 销售商品-JSF - JSF 环境中的销售商品示例

要一步构建用于部署的示例应用程序,只需解压发布档案,访问 projects/spring-webflow/build-spring-webflow 目录,然后执行 "ant dist" 目标即可。  请参阅 release readme.txt 和
projects/spring-webflow/spring-webflow-samples/readme.txt 分别获取有关发布存档内容和示例的更多信息。
所有示例项目都是 Spring IDE 项目,可直接导入 Eclipse。

感谢所有支持本次发布的人。  目前,我们预计 SWF 的下一个版本将是 1.0 最终版,目标发布时间在六月底
。  如果有需要,仍有可能发布另一个 1.0 版本候选。  请务必关注 SWF 主页和
论坛以获取更新。

祝您使用愉快!

Spring Web Flow 团队

Spring Web Flow 1.0

发布 | Keith Donald | 2006年6月10日 | ...

 

产品负责人
Keith Donald,SpringSource
Erwin Vervaet,Ervacon
 
Spring Web Flow 是下一代 Java Web 应用程序控制器框架,允许开发人员将用户操作建模为可在任何环境中运行的高级模块(称为流)。  该框架提高了生产力和可测试性,同时提供了强大的解决方案来强制导航规则和管理应用程序状态。  

全局概览

Spring Web Flow 允许开发人员构建可重用、自包含的...

Spring IDE 1.3.1 发布

发布 | Torsten Juergeleit | 2006 年 6 月 8 日 | ...

亲爱的Spring社区,

我们很高兴地宣布 Spring IDE 1.3.1 已发布。

此版本的 Spring IDE 提供了大量 bug 修复。有关完整列表,请访问 http://springide.org/project/milestone/Release%201.3.1

更改

  • 现在,只有当您想使用 BeansXmlEditor 时才需要 Web Tools
  • 修复了图像缓存中的资源泄漏
  • 更新到 Spring 1.2.8

更多详情可从项目网站 http://springide.org/ 获取

使用 Eclipse 的更新管理器从项目的更新站点 http://springide.org/updatesite/ 安装 此版本

对于 bug 报告,可以提交工单...

Acegi Security 1.0.0 发布

发布 | Ben Alex | 2006年5月30日 | ...

经过两年半多的开发,我很高兴地宣布 Acegi Security 1.0.0 现已正式发布。

下载 | 文档 | 更新日志 

除了自 1.0.0 RC2 以来的 80 多项改进和修复之外,此新版本还包含多项更改,旨在帮助新用户。这包括对参考指南的重大重组和扩展(现在超过 90 页)以及一个新的“骨架”教程示例应用程序。

此外,许多新用户经常遇到的问题也已得到解决,例如:

  • 自定义 403 消息(而不是使用 Servlet 容器的错误处理程序)
  • 检测 XML 文件重新格式化后损坏的属性输入
  • 一个新的注销过滤器。 

我们还重构了 LDAP 服务,将 SecurityContextHolder 变为可插拔策略(对于希望避免 ThreadLocal 的富客户端尤其有用),并改进了 CAS 支持。

请访问此处获取详细的变更日志。与往常一样,详细的升级说明包含在发布 ZIP 文件中。

该项目的网站 http://acegisecurity.org 提供了有关 Acegi Security 功能的更多信息、在线文档访问以及最新版本下载链接。下个月我也会在 SpringOne 上就 Acegi Security 进行演讲,希望能在那里见到大家。

获取 Spring 新闻通讯

通过 Spring 新闻通讯保持联系

订阅

领先一步

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

了解更多

获得支持

Tanzu Spring 提供 OpenJDK™、Spring 和 Apache Tomcat® 的支持和二进制文件,只需一份简单的订阅。

了解更多

即将举行的活动

查看 Spring 社区所有即将举行的活动。

查看所有