使用 Maven 获取 Spring 3 工件

工程 | Keith Donald | 2009年12月2日 | ...

一位最近的评论者在这里抱怨道:“只有一半的人在使用 Maven”,并指出如何使用 Maven 获取 Spring 3 工件并不明显。在这篇文章中,我将向您展示如何做到这一点以及有哪些选项。这些信息也将整合到即将发布的 Spring 3 最终版本的参考文档中。

发布 Spring 工件的 Maven 仓库

通常,Spring 将其工件发布到两个不同的地方

  1. Maven Central,这是 Maven 查询的默认仓库,无需任何特殊配置即可使用
  2. 企业捆绑包仓库 (EBR),由 SpringSource 运行,也托管所有与 Spring 集成的库

因此,在使用 Maven 获取 Spring 时,您首先需要决定从哪个地方获取。通常,如果您关心 OSGi,请使用 EBR,因为它包含所有 Spring 依赖项(如 Hibernate 和 Freemarker)的 OSGi 兼容工件。如果 OSGi 对您不重要,则任一地方都可以,尽管它们之间存在一些优缺点。通常,为您的项目选择一个地方;不要混用。这一点尤其重要,因为 EBR 工件使用与 Maven Central 不同的命名约定……

Spring Framework 3.0 RC3 发布

工程 | Juergen Hoeller | 2009 年 12 月 01 日 | ...

我们决定在正式发布 (GA) 之前再发布一个 Spring 3.0 的发布候选版本:请从下载页面获取,进行全面的测试,并告诉我们您的使用情况。Spring 3.0 现在正在等待您的集成测试反馈,并计划在十二月中旬正式发布。

此发布候选版本带来了一些增强功能:例如,新的 <mvc:*> 命名空间功能得到了扩展,以及对启动/关闭行为的进一步修订(影响消息监听器和计划任务)。请随意尝试这些新功能!我们也很想了解现有 Spring 2.5 应用程序的升级体验,因为我们预计您的许多应用程序将选择性地采用 3.0 的功能……同时保留大部分现有代码…

Eclipse.org 上的 Gemini 项目提案

工程 | Adrian Colyer | 2009年11月24日 | ...

本周,Gemini 项目提案 在 Eclipse.org 上公布。Gemini 是 Eclipse RT(运行时)项目的一部分,该项目“旨在在 Equinox 框架和 OSGi 的基础上,在 Eclipse 中促进、推广和容纳运行时工作”(Eclipse RT 任务声明)。Gemini 本身是一个伞形项目,汇集了一系列专为企业应用程序开发而设计的模块。SpringSource 和 Oracle 是首批为该项目提供提交者的两家公司,其他几家公司也表示有兴趣加入。

最初贡献的项目包括……

最新 Cloud Foundry 中的新功能

工程 | Charles Lee | 2009 年 11 月 23 日 | ...

我们最近更新了 CloudFoundry.com。通过此次更新,我们引入了几个令人兴奋的新功能,为未来的发展铺平了道路。我想借此机会描述和解释这些功能,并提供一些关于它们是如何产生的背景信息。我们很高兴您能尝试这些功能并向我们提供反馈。

成本跟踪

虽然云的按使用付费模式可以减少开支,但重要的是要跟踪实际使用情况和成本,以免产生意外的高额账单。以前,Cloud Foundry 会告知用户其部署的当前消费率。这对于了解费率很有用,但它不能清楚地了解或统计应用程序部署实际花费了多少。Cloud Foundry 的最新更新为成本跟踪引入了新的历史功能。对于正在运行的部署,Cloud Foundry 会显示迄今为止的成本。对于不再活跃的部署,会显示该部署在其整个生命周期内的总成本。

Screen shot 2009-11-18 at 12.59.52 PM

除了防止月度账单给您带来惊喜之外,当您需要将每个应用程序的成本与预算进行比较时,这尤其有用。如果您的预算是根据业务目标与支出金额的相关性得出的,那么 Cloud Foundry 将清楚地显示您是否已实现目标。随着时间的推移,我们希望改进此功能,使其更准确(目前不包括网络 I/O 费用),并扩展成本与其他运营指标之间的统计相关性,为您提供更好的目标设定和规划工具。

可用区

许多用户都要求能够为部署指定可用区,因为 EC2 中的预留实例需要在指定的可用区中启动。预留实例是预付费的,成本约为按需实例的三分之一。Cloud Foundry 现在提供了指定可用区的功能,在配置部署时,选择输入位于区域下方。

Screen shot 2009-11-19 at 10.46.12 AM

注意:成本跟踪不反映使用预留实例的成本节省,因为 Amazon 尚未提供方便的计费详情检索方式。

维护页面

如果您需要因维护而禁用 Java Web 应用程序,通常的做法是显示一个“缓冲页”(也称为维护页),告知用户应用程序不可用。Cloud Foundry 现在只需单击一个按钮即可提供此功能。首先,在添加或编辑应用程序时,您会注意到一个新字段:维护页。这是您希望在维护模式下显示的静态页(来自应用程序的根上下文)。部署后,您可以通过转到“部署详细信息”页面,然后单击“开始维护”来显示维护页,或者单击“结束维护”来恢复正常服务,从而在维护和正常操作之间进行切换。这是提供完整应用程序生命周期管理支持的一个小步骤。我们上个月介绍了与开发人员工具的集成,并且我们将分析和确定在云中应用程序的开发和部署过程中应支持的各种生命周期阶段。

克隆部署

由于各种原因,需要复制具有相同配置的环境,现在 Cloud Foundry 提供了一种简单的方法,可以通过部署详细信息页面上的“克隆”按钮克隆部署。基于现有部署创建重复部署在与维护功能结合使用以升级应用程序时特别有用。“克隆”按钮在您的部署使用 EBS 卷时启用。系统将提示您为克隆命名,并且所有配置都将被复制并启动到一个新部署中。克隆部署启动后,您可以点击“应用程序”部分中的“重新部署”按钮来部署不同版本的应用程序或完全不同的应用程序。

Screen shot 2009-11-18 at 2.24.05 PM

升级应用程序的活动部署可能涉及一系列步骤
  1. 将测试过的应用程序上传到 Cloud Foundry
  2. 在当前部署上启用维护页面
  3. 克隆部署
  4. 运行 SQL 脚本以迁移数据库架构
  5. 使用较新版本的应用程序重新部署
  6. 重新配置弹性 IP,以便从静态 IP 地址提供新部署的服务
  7. 停止旧部署
借助克隆功能,通过利用现有的生产部署配置,升级正在运行的应用程序可以变得顺畅可靠。

附加指标和图表

在 Cloud Foundry Beta 版的最新发布中,我们通过扩展收集的指标数量以及添加用户界面功能来改进了监控功能。首先,已添加 Hyperic SIGAR 文件系统指标,以提供对 VM 根磁盘和数据库存储上关键磁盘使用信息的监控。这些指标现在在实例详细信息区域可见。其次,已添加客户端请求数量作为指标。Cloud Foundry 收集此数据并将其转换为每分钟基于速率的指标,从而为您提供应用程序的使用量度。此指标显示在改进的部署详细信息部分中,作为带有聚合值(最大值、最小值和平均值)列表的图表。

Screen shot 2009-11-18 at 3.44.20 PM

这只是提供动态监控显示器的开始,它将提供有用且相关的操作指标和数据。随着时间的推移,我们将添加更多用于性能、健康状况和资源消耗的指标。

Spring 3 类型转换和验证

工程 | Keith Donald | 2009年11月17日 | ...

Spring 3 最终版本即将发布,它将是一个很棒的版本。在这篇博客文章中,我将带您了解 Spring 3 的一些类型转换和验证增强功能。无论您是开发传统的 Web 应用程序、桌面应用程序还是“下一代”RIA,数据绑定、类型转换和验证都是重要的领域。正如您在这篇文章中将看到的,Spring 3 在这些领域为您带来了显著的升级,同时保持了与以前版本的向后兼容性。

新系统目标

在我介绍功能之前,我想首先强调……

理解您应用程序的价值

工程 | charris | 2009 年 11 月 16 日 | ...

我们都喜欢用最新最好的技术构建应用程序,但归根结底,我们是为了交付实现业务目标的应用程序而获得报酬的。我们在每个开发迭代中都专注于如何最好地实现这些目标,但我们如何知道最新的迭代是否实现了其目标?最新的版本是否影响了应用程序正在实现的现有业务目标?

SpringSource 通过 Spring 仪器、显示趋势的监控工具以及允许您导出的报告工具,为您提供应用程序的可见性,从而实现这一功能…

Spring Framework 3.0 RC2 已发布

工程 | Juergen Hoeller | 2009 年 11 月 13 日 | ...

我很高兴地宣布,今天我们发布了第二个 Spring 3.0 发布候选版(下载页面)。此版本在几个方面对 RC1 进行了关键改进,特别是在以下方面:

  • Spring 3.0 RC2 完全符合 JSR-330 标准,并通过了 TCK 的最终版本。JSR-330,也称为“Java 依赖注入”,基本上标准化了带有限定符模型的 @Inject 注解。现在可以使用“javax.inject”注解作为 Spring 自有的 @Autowired 和 @Qualifier 注解的替代。Spring 的 <context:annotation-config> 元素也会自动激活 JSR-330 处理(如果存在“javax.inject”API)。

  • 专用的 AnnotationConfigApplicationContext:使程序化引导尽可能方便,无需任何 XML。支持带注解类的显式注册以及类路径中的组件扫描。这不仅适用于 Spring 的 @Component 模型,也适用于 @Configuration 类(又名“JavaConfig”)和符合 JSR-330 的类。

隆重推出 Spring Batch Admin

工程 | Dave Syer | 2009 年 11 月 10 日 | ...

Spring Batch Admin 提供了一个基于 Web 的用户界面,其中包括一个用于 Spring Batch 应用程序和系统的管理控制台。这是 SpringSource 的一个新开源项目。里程碑版本 1.0.0.M1 将很快发布,包含以下所有功能,我们希望在 2010 年初实现 1.0.0 正式版发布。

主要用例

最快了解 Spring Batch Admin 的方法是查看一些主要用例的屏幕截图。用户界面是一个 Web 应用程序(使用 Spring MVC 构建)。

检查作业

作业视图 用户可以检查系统中已知的作业。作业分为可启动和不可启动(在屏幕截图中,它们都是可启动的)。区别在于,可启动作业是在应用程序本身中定义和配置的,而不可启动作业是通过另一个进程中作业的执行所留下的状态检测到的。(Spring Batch 使用关系数据库来跟踪作业和步骤的状态,因此可以查询历史执行以显示不可启动的作业。)

启动作业

启动作业视图 可以通过用户界面启动可启动的作业,通过提供的名称-值对的作业参数,或者通过应用程序中配置的增量器来启动。

检查执行

作业执行视图 作业执行中或已执行后,可以使用此视图查看最近的执行以及它们的简要状态摘要(STARTED、COMPLETED、FAILED 等)。作业执行视图 每个单独的执行都有一个更详细的视图(如上所示),然后用户可以单击进入作业中每个步骤执行的视图(在本例中只有一个)。执行此操作的一个常见原因是查看失败的原因。步骤执行(顶部)视图 步骤执行详细视图的顶部显示了该步骤在所有作业执行中的执行历史记录。这对于获得性能特征的统计感觉很有用。在集成测试环境中运行作业的开发人员可能会使用这里的统计信息来比较作业的不同参数化,以查看更改(例如)项目处理步骤中的提交间隔的效果。步骤执行(底部)视图 步骤执行视图的底部是步骤的详细元数据(状态、读取计数、写入计数、提交计数等)以及导致步骤失败的任何异常的堆栈跟踪摘录(如上例所示)。

停止执行

停止作业执行视图 用户可以停止正在执行的作业(无论其是否可启动)。停止信号通过数据库发送,一旦 Spring Batch 在运行该作业的任何进程中检测到,该作业就会停止(状态从 STOPPING 变为 STOPPED),并且不再进行进一步的处理。

在哪里获取

最好的起点是SpringSource 社区下载页面。还有一个快照下载附在此文章中,或者您可以从subversion 获取源代码并自行编译。快照构建每天晚上也会上传到 S3 的 Maven 存储库
<repository>
	<id>spring-snapshots</id>
	<name>Spring Maven Snapshot Repository</name>
	<url>http://s3.amazonaws.com/maven.springframework.org/snapshot</url>
</repository>

有两个 JAR 构件和一个 WAR 示例(org.springframework.batch:spring-batch-admin…

Cloud Foundry 集成到开发工具中

工程 | Charles Lee | 2009 年 11 月 10 日 | ...

感谢其他 SpringSource 项目团队的努力,我们很高兴看到三款开发工具与 Cloud Foundry 集成,即 SpringSource Tool Suite、Grails 和 Roo。其结果是,您可以创建和开发您的 Spring 或 Grails 应用程序,并在云中运行它们,而无需离开您喜欢的 IDE 或命令行界面。这些工具利用 Cloud Foundry 客户端 Web 服务 API(即将发布),并利用云中额外的智能和 SpringSource 工件存储库,实现优化、高效的上传……

dm Server 2.0.0.M6

工程 | Ben Hale | 2009年10月27日 | ...

dm Server 2.0.0.M6 现已发布,可从此处下载。

此版本紧随 M5 版本发布,我们正逐步接近第一个 2.0.0 候选版本。这一次,我们非常注重修复未解决的缺陷,并且只添加了少量新功能。请查看 M6 发布说明,了解我们修复的所有缺陷和添加的功能的完整详细信息。请继续在我们的博客评论区、论坛JIRA 上提供您的反馈。

新增和值得注意

将 dm Kernel 和 dm Server 作为服务运行

dm Kernel 和 dm Server 现在可以在 Windows 和 UNIX 机器上作为服务启动。要在 Windows 上安装服务,您需要编辑$HOME/bin/service/conf/wrapper.conf文件以正确列出内核或服务器的路径。然后运行$HOME/bin/service/windows.bat install。还有其他要运行的命令,dm Server 文档介绍了其他命令。

UNIX 用户更容易,因为$HOME/bin/service目录包含许多init.d兼容……

获取 Spring 新闻通讯

通过 Spring 新闻通讯保持联系

订阅

领先一步

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

了解更多

获得支持

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

了解更多

即将举行的活动

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

查看所有