Maven 构件 (09/2007)

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

到目前为止,Spring Portfolio 的 Maven 构件,特别是快照,创建得不一致,并且散布在各种位置。在过去的几周里,我们一直在努力使项目在创建和上传这些构件时更加一致。

Maven 仓库

Spring Portfolio 中对 Maven 支持最有效的改进之一就是使用一致的仓库位置。根据您对代码的熟悉程度,有三种不同的仓库。

发布仓库

对于任何最终发布(Spring 2.5、Spring Web Flow 2.0 等),该发布的 Maven 构件将上传到 Maven Central 仓库(http://repo1.maven.org/maven2)。使用此仓库无需您付出任何努力,因为 Maven 会自动在此处查找构件。

此仓库中的构件确实遵循预期的仓库行为,并且不会(也不能)被删除。

里程碑仓库

对于任何里程碑发布(Spring 2.5-RC1、Spring Web Flow 2.0-M2 等),该发布的 Maven 构件将上传到 Spring 里程碑仓库(http://s3.amazonaws.com/maven.springframework.org/milestone)。使用此仓库需要您在 POM 文件中向 <repositories/> 元素添加条目。它应该看起来像这样:


<repository>
    <id>spring-milestone</id>
    <name>Spring Portfolio Milestone Repository</name>
    <url>http://s3.amazonaws.com/maven.springframework.org/milestone</url>
</repository>

此仓库中的构件遵循预期的仓库行为,并且会被定期删除。在最终版本(Spring 2.6、Spring Web Flow 2.1 等)发布后,上一版本构件的所有里程碑版本将被删除。例如,当 Spring 2.6 发布时,Spring 2.5 的里程碑将被删除,而 Spring 2.6 的里程碑将被保留。

快照仓库

对于任何快照构建(Spring 2.5-SNAPSHOT、Spring Web Flow 2.0-SNAPSHOT 等),该构建的 Maven 构件将上传到 Spring 快照仓库(http://s3.amazonaws.com/maven.springframework.org/snapshot)。使用此仓库需要您在 POM 文件中向 <repositories/> 元素添加条目。它应该看起来像这样:


<repository>
    <id>spring-snapshot</id>
    <name>Spring Portfolio Snapshot Repository</name>
    <url>http://s3.amazonaws.com/maven.springframework.org/snapshot</url>
</repository>

此仓库中的构件遵循预期的仓库行为,并且会被定期删除。对于给定的构件,至少会保留最近的 10 个快照构建。如果一个构件从分发版中删除,其快照构建将立即被删除。在里程碑或最终版本发布时,将删除构件的所有快照,并创建一个新快照用于下一个版本。

仓库浏览

里程碑和快照仓库都托管在亚马逊的 S3 服务上,因此目录结构不便于人类阅读。要以人类可读的格式查看仓库,请使用S3Browse 工具。

仅将这些 URL 用于人类可读的查看。如果将它们用作 POM 的 URL,您将遇到错误。

构件源代码

另一个重要的改进是为所有发布添加了源代码构件。您会注意到在里程碑仓库中,所有构件都附带了源代码。在未来,所有最终发布也将如此。具体来说,从 Spring 2.5 发布开始,除了 Spring 组合源代码外,每个模块还将拥有一个源代码构件。

Spring 快照

最后一个改进尚未完成;Spring 的夜间快照。我很乐意地说,这即将完成。我仍在解决与Maven Ant Tasks 相关的最终细节问题,但这最终会开始出现,届时我将再次宣布。此外,您可以期望此功能最终会推广到所有其他基于 ANT 的 Spring Portfolio 项目,以便所有项目都能创建 Maven 快照和里程碑。

Spring Framework 2.1 演变为 Spring Framework 2.5!

工程 | Juergen Hoeller | 2007年9月10日 | ...

我的第一篇博文——这是一个多么重大的公告:-)

在一系列 Spring 2.1 里程碑发布之后,我们一直在审查我们引入的整体功能集

  • 完整的Java 6 和 Java EE 5 支持(JDBC 4.0、JTA 1.1、JavaMail 1.4、JAX-WS 2.0 等)
  • 功能齐全的注解驱动的依赖注入(包括对“qualifier”注解的支持)
  • 支持类路径中的组件扫描(自动检测带注解的类)
  • AspectJ 切入点表达式中的bean 名称切入点元素
  • 内置支持AspectJ 加载时织入(基于 Spring 的 LoadTimeWeaver 抽象)
  • 更多的 XML 配置命名空间(“context”、“jms”)以获得最大的便利性
  • 扩展的 SimpleJdbcTemplate 功能(支持命名参数等)
  • 官方认证的 WebSphere 支持(支持 WebSphere 6 UOWManager 功能等)
  • Spring Framework jar 开箱即用,都是符合 OSGi 的 bundle
  • Spring ApplicationContext 可以部署为 JCA RAR 文件(用于无头应用程序模块)
  • JCA 1.5 消息端点管理(用于 Spring 管理的 JMS 和 CCI 消息监听器)
  • 完全修订的集成测试框架(支持 JUnit 4 和 TestNG)
以及许多细节方面的改进。几乎所有这些功能都已包含在最近发布的 2.1 M4 中。

我们得出结论,这已远远超出了我们最初为 Spring 2.1 制定的计划。版本号 2.1,正如在里程碑中所使用的,并不能反映此主要版本功能的重要性和全面性。

因此,我很高兴地宣布,2.1 里程碑将无缝地演变为Spring Framework 2.5 作为即将推出的主要版本! Spring 2.5 的最终发布计划在...

Spring Framework 2.1 M4 发布

发布 | Juergen Hoeller | 2007年9月10日 | ...

亲爱的Spring社区,

我很高兴地宣布 Spring Framework 2.1 M4 已经发布!此里程碑版本引入了

  • “限定符”注解支持,用于选择特定的 @Autowired 匹配;
  • 我们支持 JUnit4 的下一代 Spring TestContext 框架;
  • 用于存储过程调用的 SimpleJdbcCall 操作对象;
  • 支持脚本对象(Groovy、JRuby、BeanShell)的自动装配;
  • 支持 Spring Web MVC 中的 Tiles2 视图。

Spring 2.1 M1 Released

 

这让我想到了一些更令人兴奋的消息……

我们一直在审查最近 2.1 里程碑中引入的全部功能

  • 完整的 Java 6 和 Java EE 5 支持
  • 功能齐全的注解驱动依赖注入
  • 支持类路径中的组件扫描
  • AspectJ 切入点表达式中的“beanName”切入点元素
  • 内置的 AspectJ 加载时织入支持
  • 进一步的 XML 配置命名空间(context,jms)
  • 扩展的 SimpleJdbcTemplate 功能
  • 官方认证的 WebSphere 支持
  • Spring ApplicationContext 可以部署为 RAR 文件
  • JCA 1.5 消息端点管理(用于 JMS 和 CCI)
  • 完全修订的集成测试框架

我们得出结论,这大大超出了我们最初为 Spring 2.1 计划的功能。里程碑版本使用的版本号 2.1 并不能反映此版本中功能的显著性和全面性。

因此,我很高兴地宣布下一个版本将命名为 Spring Framework 2.5 RC1,2.1 里程碑将无缝地过渡到 Spring Framework 2.5 作为即将发布的主要版本!请查看Interface21 团队博客,获取官方公告以及随着我们接近最终版本,关于特定 Spring 2.5 功能的即将发布的文章。

Spring 2.1 M4 在此。Spring 2.5 万岁!:-)

祝好,

Juergen Hoeller
Spring 框架开发负责人
Interface21 - http://www.interface21.com

Interface21 在国会证词中被提及

工程 | Rod Johnson | 2007 年 9 月 8 日 | ...

Interface21 国会证词中被提及

风险投资家兼 Core Capital Partners 创始人 Jonathan Silver 于周四就拟议的针对风险投资家税率的变更作证。他的论点之一是,风险投资支持的公司在美国各地创造了就业机会

下一个重要企业将从哪里来?事实是,没有人知道,这就是为什么风险资本家在全美各地寻找机会。这也是为什么风险基金支持了纽约市的 Music Nation、安娜堡的 Incept Biosystems、佛罗里达州西墨尔本的Interface21、马萨诸塞州韦斯特伯勒的 Boston Power 以及德克萨斯州圣安东尼奥的 Click Forensics。

实际上,我们的总部正在迁往加利福尼亚州圣马特奥。像许多软件供应商一样,我们认为硅谷是实现潜力的最佳地点。我们的合作伙伴最集中在这里,而且这里是招聘软件业务高管人才的好地方。然而,Silver 的观点仍然有效。我们确实在佛罗里达创造了就业机会——我们的 Web 团队就位于那里,并且目前正在在 Spring Web Flow 方面做得非常出色...

Spring Web Flow 下一代版本第一个里程碑发布

发布 | Keith Donald | 2007年8月28日 | ...

亲爱的Spring社区,

我们很高兴地宣布 Spring Web Flow 下一代版本的第一个里程碑现已发布。Spring Web Flow 2.0 M1 引入了多项主要新功能,包括对流管理持久化上下文的支持、对 Java Server Faces 的改进支持、完整的统一表达式语言 (EL) 支持以及更全面的示例 Web 应用程序

 

Spring Web Flow 2.0 是一个用于开发 Java Web 应用程序控制器的下一代框架。该框架提供了一个统一的运行时环境,用于在各种环境中执行无状态有状态的客户端交互。

Web Flow 2.0 版本的发布目标

如今,大多数应用程序开发人员使用 Spring Web Flow 来实现线性页面流,例如向导,通过将 Web Flow 插入到他们的“基础”Web 框架(例如 Spring MVC)中。此类页面流表现出线性导航规则,是有状态的,并形成 Web 应用程序功能的动态、自包含模块。一个很好的例子是贷款申请流程:Web Flow 独特的流定义语言为实现这些类型的流程提供了自然的编程模型。

Spring Web Flow 2.0 的总体目标是正式地将产品从目前的主要是实现线性向导的框架,转变为它一直以来旨在成为的:一个为所有类型的客户端交互提供支持的通用应用程序控制器引擎。此类交互包括向导、无状态“RESTful”交互以及“Web 2.0”应用程序中常见的更细粒度的、非线性/异步交互。

Spring Web Flow 2.0 将为 Spring 社区提供一个统一的应用程序控制器框架和运行时,适用于执行所有类型的客户端交互,并且能够集成各种视图渲染技术和 UI 组件模型。这个统一的运行时将能够一致地应用管理仪表、安全性、AJAX 和托管持久性等独特功能。

查看完整的Spring Web Flow 2.0 路线图

Web Flow 2.0 M1 新功能和值得注意的改进

第一个 2.0 里程碑版本在迈向 2.0 最终版的过程中引入了多项主要新功能。这些功能将在下面描述。 

基于 JPA 和 Hibernate 的流管理持久化上下文

Spring Web Flow 2.0 M1 引入了对 Hibernate 和 JPA 的流管理持久化上下文支持。发布中包含的新酒店预订示例应用程序演示了此功能。以下是它在预订示例中的工作原理:

  • 当新的酒店预订流程开始时,会自动为您创建一个持久化上下文。
  • 随着您在流程中的进展,持久化上下文会自动用于所有数据访问操作。您无需担心查找流绑定的 EntityManager 实例,或以任何方式对其进行管理。
  • 当您授权预订时,对托管持久化实体的所有更改都会自动提交并刷新到数据库。如果您选择取消预订,您的任何更改都不会被提交。

此酒店预订流程的图形Spring IDE视图如下所示:

Booking Flow 

改进的 Java Server Faces (JSF) 支持

Spring Web Flow 2.0 M1 引入了 Spring Faces 模块 (spring-faces-2.0-m1.jar),这是一个随 Web Flow 发行版提供的组件,其中包含对使用 Java Server Faces 开发 Web 应用程序的组织的一流支持。现有的 Web Flow + JSF 集成已重构到此项目中,此项目将成为所有未来 JSF 集成工作的主页。

Spring Faces 模块为 Spring 社区提供了一个专门的项目,用于探索额外的 JSF 集成机会。2.0 M1 中的初始工作引入了与流行 Javascript GUI 小部件框架 Ext 的集成。提供了几个轻量级 JSF UI 组件,封装了富 Ext 小部件的渲染。我们采用的方法允许 Ext 小部件装饰标准 JSF 组件,添加类似桌面的外观和附加的 UI 行为,例如客户端验证。2.0 M1 中提供了以下 Ext 组件装饰器:

  • 一个日期验证器组件,它对日期文本字段执行富客户端验证,带有一个美观的日期选择器控件。
  • 一个文本验证器,它对自由格式文本输入字段执行富客户端验证。
  • 一个数字验证器,它对数字文本字段执行富客户端验证。

日期验证器控件的屏幕截图(也在酒店预订示例应用程序中使用)如下所示:

 

Ext 控件外观精美,由于所有 UI 行为都在客户端执行,因此 UI 响应速度极佳。我们将在未来的 Web Flow 里程碑版本中,作为 Spring Faces 模块的一部分,在此领域添加进一步支持。

拥有专门的 Spring Faces 模块也简化了在 JSF 环境中设置 Spring Web Flow 的过程。在 2.0 M1 之前,开发人员需要手动修改 faces-config.xml 来设置样板 Spring/SWF 集成管道。使用 2.0 M1,只需在类路径中包含 spring-faces-2.0-m1.jar 即可自动完成此设置。

统一表达式语言 (EL) 支持

此版本中的新功能还包括对统一 EL 的全面支持,它提供了替代 Spring Web Flow 当前默认使用的基于 OGNL 的表达式解析器的方法。现在建议在 JSF 环境中使用统一 EL,并且将在未来的里程碑版本中成为 JSF 开发人员的默认选项。

以下是酒店预订流程定义中使用的 EL 表达式示例: 

 

上述“id”表达式评估存储在 Flow Scope 中的当前酒店标识符。请注意,这里无需任何显式的 flowScope 前缀。开发人员只需按名称引用变量,ELExpressionEvaluator 就会通过搜索各种作用域来解析变量。这使得 Web Flow 定义中的托管 bean 引用与用于模型绑定表达式的 JSF 视图中的引用 100% 一致。例如,请参见 bookingForm.xhtml 视图中的以下代码片段:

 

2.0 版本说明

Spring Web Flow 2.0 需要 Spring 2.0 或更高版本以及 Java 1.4 或更高版本。

Spring Web Flow 2.0 将尽可能保持与 1.0.x 基于 XML 的流定义语言的向后兼容性。预计随着 Web Flow 演变为完整的控制器框架,未来 Web Flow 2.x 里程碑中的一些 SWF SPI 将发生变化。

Spring Web Flow 2.0 的未来里程碑将引入新的方言,用于在真实的编程语言中定义流,从而提供比当前基于 XML 的流定义语法更强大的替代方案。基于 POJO 的 Java 流定义语法正在开发中,同样还有基于 Groovy 的方法。此外,还将引入用于实现 REST-ful 和 CRUD 流的高级流方言。由于 Web Flow 定义 API 和执行运行时与任何具体的流定义语法是分离的,我们可以自然地引入新的语法,以不同的方式在运行时设计应用程序控制器。

对于 JSF 用户,Spring Web Flow 2.0 和 Spring Faces 可在 JSF 1.1 和 JSF 1.2 上运行。Spring Faces 模块中的 UI 组件库独立于 Web Flow 运行时,也可与 JSF 的默认导航处理程序一起使用。

Spring Web Flow 2.0 将继续全面支持 Servlet 2.4 或更高版本、Portlet 1.0 或更高版本以及 JUnit 3.8.1 或更高版本环境。 

Spring Web Flow 2.0 将继续在 Struts 1.2 或更高版本以及 Spring MVC 2.0 或更高版本环境中运行,并且在 2.0 最终版时也将可用作独立的 Web 应用程序控制器框架。

Spring Web Services 1.0 发布

发布 | Arjen Poutsma | 2007 年 8 月 17 日 | ...

经过两年的开发,我们很高兴地宣布 Spring Web Services 1.0 现已可用。

Spring-WS Logo

下载 | 参考文档 | API 文档

Spring Web Services 是 Spring 社区的产品,专注于创建文档驱动、契约优先的 Web 服务。Spring Web Services 的主要特性包括...

  • 使最佳实践变得简单:Spring Web Services 使强制执行最佳实践变得更容易。这包括 WS-I 基本配置文件、契约优先开发以及契约和实现之间松散耦合等实践。
  • 强大的映射:您可以根据消息负载、SOAP Action 头部或 XPath 表达式,将传入的 XML 请求路由到任何处理程序。
  • XML API 支持:传入的 XML 消息可以使用标准 JAXP API(如 DOM、SAX 和 StAX)进行处理,也可以使用 JDOM、dom4j、XOM 甚至 marshalling 技术进行处理。
  • 灵活的 XML 编组:Spring Web Services 发行版中的对象/XML 映射模块支持 JAXB 1 和 2、Castor、XMLBeans、JiBX 和 XStream。由于它是一个单独的模块,您也可以在其他环境中使用它。
  • 重用您的 Spring 专业知识:Spring-WS 使用 Spring 应用程序上下文进行所有配置,这使您能够快速启动和运行。此外,Spring-WS 的架构类似于 Spring-MVC。
  • 支持 WS-Security:WS-Security 允许您对 SOAP 消息进行签名、加密和解密,或对其进行身份验证。它还与 Spring Security 集成!

了解更多关于 Spring Web Services 的信息,请访问 2007 年 12 月 12 日至 15 日在佛罗里达州好莱坞 Westin Diplomat 酒店举行的 The Spring Experience。Arjen 将在那里就 Spring Web Services 发表两场演讲:Spring Web Services 简介使用 Web Services 进行 WS-DuckTyping

有关自 1.0-RC2 以来修复的列表,请参阅发行说明

最后,衷心感谢所有参与者。没有你们,这一切都不可能实现!

阿姆斯特丹 Java 聚会 Q307,9 月 21 日

工程 | Alef Arendsen | 2007 年 8 月 2 日 | ...

又到了下一次 Java 聚会的时间了。我决定将这个在阿姆斯特丹每季度举行一次的活动的第七期推迟到夏天之后,因为荷兰的大多数人会在八月左右休几周的假。

我已经查看了我们的内部日程安排,看来 9 月 21 日是 9 月份剩下的唯一一天,所以我希望它也适合其他人的日程安排。

我们将在与去年四月聚会相同的地点举行,因为这对我们来说非常方便,而且大家似乎都对此表示满意。第一次 Java 聚会是在我最喜欢的阿姆斯特丹聚会场所举行……

Spring Framework 2.1 M3 发布

发布 | Juergen Hoeller | 2007 年 8 月 1 日 | ...

亲爱的Spring社区,

我很高兴地宣布 Spring 2.1 M3 已发布!

这是 Spring 2.1 系列的第三个里程碑版本,引入了集合的自动装配、“bean(name)”切入点元素、各种 JDBC 增强功能、JRuby 1.0 支持以及框架中的许多改进。

Spring 2.1 M1 Released

 

请参阅更新日志JIRA 路线图,了解此版本中引入的新功能的更多详细信息。

供参考,我们还发布了 2.0.7 快照,其中包含从 2.1 M3 反向移植的修复。请尝试使用最新的快照作为 2.0.5/2.0.6 的替代品!官方 2.0.7 版本计划于 8 月 15 日发布。 

祝好, 

Juergen Hoeller
Spring 框架开发负责人
Interface21 - http://www.interface21.com

揭穿神话:代理影响性能

工程 | Alef Arendsen | 2007 年 7 月 19 日 | ...

在最近的一篇博客文章中,Marc Logemann 谈到了代理性能的主题。在他的文章中,他要求“Spring 开发者”提供一份白皮书。我不想花费大量篇幅讨论代理和字节码织入机制之间精确到纳秒的差异,但我确实认为重申这些差异以及这种讨论是否重要是有价值的。

什么是代理以及我们为什么使用它们?

让我们首先简要回顾一下代理的用途(通常以及在 Spring 中)。根据 GoF(Gang of Four)关于 设计模式 的书,代理是另一个对象的替身或占位符,用于控制对其的访问。因为代理位于对象的调用者和实际对象之间,所以它可以决定阻止实际(或目标)对象被调用,或者在目标对象被调用之前做一些事情。prox.jpg

换句话说,代理可以用作真实对象的替身,以对这些对象应用额外的行为——无论是与安全相关的行为、缓存还是性能测量……

Grails 和 Maven:一种不方便的结合

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

介绍

Grails 似乎发展势头越来越好,并且看起来确实“有潜力”,正如他们所说。我很有兴趣将这些潜力扩展到 Web 应用程序领域之外。如果您了解我在Spring Batch 上的工作,您大概可以猜出这会把我带到哪里。但在这篇文章中,我想分享一些我在 Grails 应用程序的基本、低级部署和构建方面的一些经验。

我对 Maven 2 既爱又恨,而且我正在学习爱上 Grails,但可惜的是,这两者配合得不太好。这本会...

获取 Spring 新闻通讯

通过 Spring 新闻通讯保持联系

订阅

领先一步

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

了解更多

获得支持

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

了解更多

即将举行的活动

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

查看所有