2006年亚特兰大开发者大会
我刚刚在2006年亚特兰大开发大会上完成了我的Spring 2.0:新特性和值得注意的改进演讲。我首先要说的是,这次会议非常棒。会场和组织者都非常出色。我特别要感谢Burr Sutter举办了一场如此精彩的会议。当会议中心没有无线网络,但你可以从隔壁的咖啡馆获得无线网络时,你就知道一切都很顺利。这是好运气!JUG成员都非常博学(即使是那些不了解Spring的),并提出了很好的问题。我回答了关于EJB的问题……
Spring Framework 1.2.8 发布
亲爱的 Spring 社区:
我们很高兴地宣布 Spring 1.2.8 已经发布。 下载 | 文档 | 更新日志
这是一个维护版本,修复了之前 1.2.x 版本中发现的许多问题。这些修复大部分已从 2.0 M4 反向移植,因此在那里已经可用。请参阅 更新日志 获取详细信息。
Juergen
-----
Juergen Hoeller
Spring 框架开发负责人
Interface21 首席架构师
http://www.springframework.org
http://www.interface21.com
Spring Web Flow 1.0 RC1 发布
亲爱的Spring社区,
我们非常高兴地宣布 Spring Web Flow (SWF) 1.0 RC1(发布候选版本 1)已经发布。 下载。
经过一年多的艰苦开发工作、29,000 次下载、500 位论坛用户的 3,700 篇帖子、一本书,以及无数社区驱动的文章和文章,本次发布带来了 Spring Web Flow 的首个 1.0 发布候选版本。 本版本被认为适合生产使用,它巩固了 1.0 API,该 API 将在整个 1.x 系列中保持向后兼容。
感谢 Spring Web Flow 的早期采用者和支持者,感谢你们对我们产品的支持。 得益于你们的反馈和支持,Spring Web Flow 提供了当今最具创新性和最强大的控制器引擎之一。
Spring Web Flow 团队预计在 1.0 最终版之前还会发布一个候选版本。 1.0 RC1 的新特性和值得注意的改进包括...
新特性和值得注意的改进
此支持通过简单的 NumberGuess 示例应用程序进行说明,其中由流管理的“Game”组件执行游戏业务逻辑。 该组件本身对 Spring Web Flow API 没有任何依赖。
为了演示,Game 组件的业务接口可以定义为

与用户一起执行游戏的流定义可能如下所示:

最后,逻辑 game 动作标识符与 Game 实现之间的绑定由 Spring 在 game-beans.xml 中完成。

HigherLowerGame 实现也与 Spring 和 Spring Web Flow API 完全解耦。
增强了对流变量的支持,流启动时自动创建。 流变量值甚至可以从后端 bean 工厂获取,从而受益于完整的依赖注入。 变量的确切范围是可配置的。
一种新的流执行重定向响应类型,用于重定向到唯一的“流执行 URL”。 访问流执行 URL 会在之前进入的 ViewState 刷新流,允许从那里继续。 只要对话处于活动状态且继续点有效,URL 就保持有效。 这允许在不进行页面缓存的情况下完全使用后退、前进、刷新和新窗口按钮。
状态异常处理的改进,方便支持转换执行状态异常处理器。 核心转换元素现在支持一个 on-exception 属性,该属性在发生异常时驱动流转换到新状态。 例如
... 如果 placeOrder 方法抛出 AccountException,则将流转换为 editAccount 状态。
流属性映射支持的改进。 每个流现在都可以配置一个 input-mapper 来映射启动流的调用者提供的输入。 流还可以配置一个 output-mapper 来向终止流的调用者公开返回值。 这些增强功能允许流作为顶级流和子流重用而无需更改,因为输入和输出属性在这两种情况下都一致映射。
支持动态视图名称和目标状态表达式,分别允许方便地在运行时计算 ViewState 的逻辑视图名称和转换的目标状态。
增强的 JSF 集成。 JSF 集成现在支持逻辑重定向响应类型,包括 FlowExecutionRedirect、ConversationRedirect、FlowRedirect 和 ExternalRedirect。 此外,对 FlowPhaseListener 的增强允许启动和刷新流执行,而无需经过正式导航步骤。 1.0 RC2 有望在 Portlet 环境中增加进一步的 JSF 便利性和对 JSF 的官方支持。
附加资源和入门指南
Spring Web Flow 1.0 RC1 进一步完善了参考手册,提供了 50 页专注于 SWF 用法的文档。 该手册可在HTML 和 PDF 格式的在线文档中获取。
开始使用 Spring Web Flow 的最佳方法之一是查看和演练示例应用程序。 我们建议从一开始就查看所有示例,并根据需要补充参考手册材料。 1.0 RC1 版本附带了九 (9) 个示例应用程序,每个应用程序都演示了一组不同的产品功能。 这些示例是
1. Phonebook - 演示大多数功能(包括子流)的原始示例。
2. Sellitem - 演示带有条件转换、流执行重定向、对话范围和延续的向导。
3. Flowlauncher - 演示启动和恢复流的所有可能方式。
4. Itemlist - 演示 REST 风格的 URL、到可刷新对话 URL 的对话重定向和内联流。
5. Shippingrate - 演示 Spring Web Flow 与 Ajax 技术一起使用(感谢 Steven Devijver)
5. NumberGuess - 演示有状态 bean
6. Birthdate - 演示 Struts 集成。
7. Fileupload - 演示多部分文件上传。
8. Phonebook-Portlet - Portlet 环境中的电话簿示例(注意流定义如何保持不变)
9. Sellitem-JSF - JSF 环境中的销售商品示例(注意流定义如何保持不变)
要一步构建用于部署的示例应用程序,只需解压发布存档,访问 projects/build-spring-webflow 目录并执行 ant dist 目标。 有关发布存档内容和示例的更多信息,请分别参阅 release readme.txt 和 projects/spring-webflow-samples/readme.txt。 所有示例项目现在都是 Spring IDE 项目,可以直接导入 Eclipse。 请留意 Spring IDE 团队即将推出的 Spring IDE 图形 Web Flow 编辑器。
感谢所有让 Spring Web Flow 发展至今的人——那些使用它并提供反馈使其更强大的人。 享受吧!
此致,
Spring Web Flow 团队
Keith Donald
Erwin Vervaet
Colin Sampaleanu
Juergen Hoeller
Rob Harrop
Spring IDE 1.3 发布
亲爱的Spring社区,
我们很高兴地宣布 Spring IDE 1.3 已发布。
此版本的 Spring IDE 提供了一些 新功能 和大量 bug 修复。有关完整列表,请访问 http://springide.org/project/milestone/Release%201.3
更改
- 现在需要 Eclipse 3.1 和 Web Tools!!!
- 更新到 Spring 1.2.7
- 更新了 BeansXmlEditor 版本
- 支持 搜索 BeansCoreModel
- 打开 Spring Bean 对话框(类似于 JDT 的“打开类型”对话框)
- 用于创建新 SpringProject 的 向导
- BeansView 可以链接到 BeansXmlEditor
- 现在支持 BeansConfig 文件的任何文件名扩展名
更多详情可从项目网站 http://springide.org/ 获取
使用 Eclipse 的更新管理器从项目的更新站点 http://springide.org/updatesite/ 安装 此版本
对于 bug 报告,可以通过 http://springide.org/project/newticket 提交工单
使用 AspectJ 和 JMX 进行消息流跟踪
在我曾经工作的一个项目中,我们有一个系统可以从设备接收消息,并决定是否将该信息传递给用户。存在多个决策级别,我们总是发现自己会问的一个问题是,消息是否在通过系统的过程中丢失了。
在我们转向Spring之前,几乎不可能知道那个问题的答案。人们曾尝试使用日志记录,但做决策所依据的消息量之大,使得它充其量也只是繁琐。也曾尝试使用调试器,但两者结合……
Spring Framework 2.0 M4 发布
亲爱的 Spring 社区:
我们很高兴地宣布 Spring 2.0 M4 已经发布。 下载 | 文档 | 更新日志
Spring 2.0 M4 是 Spring 下一个世代的第四个里程碑。
新特性和值得注意的改进包括
- 更新的 JPA 支持
- JDBC 访问的命名参数支持
- 精炼的 XML 模式命名空间
- FactoryBean 创建对象的自动代理
- 以及更新日志中提到的许多其他改进。
此版本还包含自 M3 以来发现的许多问题的修复。 鼓励之前里程碑的用户进行更新。 有关所有 M4 更改的详细信息,请参阅更新日志。
随着此版本的发布,我们正在接近 2.0 生产目标的特性冻结,仅计划在 2.0 中包含一些额外的特性和改进。下个版本将是 Spring 2.0 发布候选版本 1 (RC1),计划于五月发布。
我们还将在几天内发布 1.2.8 维护版本,反向移植 2.0 M4 中所有适用的修复。(这已在 CVS 的 mbranch-1-2 中可用,等待最终测试。)
尽情享受,并持续提供反馈,
Juergen
-----
Juergen Hoeller
Spring 框架开发负责人
Interface21 首席架构师
http://www.springframework.org
http://www.interface21.com
Spring 2.0 的 JMS 改进
随着 Spring 1.1 的发布,Spring 社区首次体验到了 JMS 支持。这种支持包括异常转换、消息转换以及一个类似于 JdbcTemplate 的模板类。这种支持还解决了 JMS 1.0.2 和 1.1 规范之间的域统一问题。这种支持的核心是 JmsTemplate 类及其 JMS 1.0.2 对应项 JmsTemplate102。
这种支持相对于使用原始 JMS API 进行企业消息传递来说是一个巨大的改进。然而,它也有一个缺点;JmsTemplate 只支持使用 JmsTemplate.receive() 方法同步接收消息。这种行为对许多人来说效果很好,但绝大多数用户最终都自行实现了异步消费者。简而言之,他们想要的是 EJB 2 所谓的 消息驱动 Bean……
爱上 Spring 2.0 的另一个理由:拦截器组合
最近我正在做一个项目,该项目有一个 Swing 客户端通过 RMI 与服务层通信。服务层标记了事务,一切似乎都运行良好。但是,每当我们在 Hibernate DAO 层收到异常时,Spring 都会将异常转换为运行时异常,并将其沿堆栈传播,并通过 RMI 连接作为 RemoteException 传播。每当异常被反序列化时,客户端都会出现异常(与 RemoteException 分开)。决定是简单地引入一个切面。任何异常……
Spring 2.0 中的 POJO 切面:一个简单示例
尽管这篇文章中的材料非常简单,但它实际上将展示 Spring 2.0 中一些相当重要的新功能。我希望通过一点想象力,您能够将您在此处看到的内容应用于您自己的远非简单的用例。
我实际上将展示 2 个示例。第一个将使用一个相当简单的记录器
package example;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
public class SimpleLogger {
private static Log log = LogFactory.getLog(SimpleLogger.class);
public void logOneString(String s) {
log.info…