Spring 2.0 最终版,首日下载量超过 10,000 次

工程 | Rod Johnson | 2006 年 10 月 05 日 | ...

Spring 2.0 已于周二发布最终版!这是 Spring 团队 9 个月辛勤工作以及大量用户反馈(感谢!)的成果,也是向前迈出的重要一步。

我保证我的下一篇博客不会再讨论下载量。我最近一直在尝试一些有趣的方法来测试 @AspectJ 注解中的切入点 (pointcuts),所以下次希望能发布一些有趣的代码。

但我们刚刚注意到 SourceForge 提供的一些非常惊人的数字,所以我忍不住要发帖分享。Spring 2.0 在前 24 小时内下载量超过 10,000 次!对 Spring 2.0 的兴趣已经持续了几个月——一些用户甚至已经在生产环境中使用候选发布版,其中包括欧洲一家著名的媒体网站——我认为 Keith 精彩的发布页面...

Spring 2.0 Maven POM 已就绪

工程 | Ben Hale | 2006 年 10 月 04 日 | ...

在这个发布消息纷至沓来的一天里,还有一个关于 Spring 2.0 的最后通知。Spring 2.0 的 Maven POM 文件已上传到 Spring 的私有仓库。如果您想直接指向它,请查看 https://svn.sourceforge.net/svnroot/springframework/repos/repo/。如果您想等待,它们应该会在未来几天内复制到 Ibiblio Maven 仓库。

对于那些喜欢浏览更多元数据的人,SourceForge 的 ViewVC 接口是一个不错的选择。请记住,您应该使用前一个链接作为 Maven 的 URL,但可以使用后一个链接进行浏览。


更新于 10/3 22:03:新增关于 ViewVC 的段落

利用泛型元数据

工程 | Rob Harrop | 2006 年 09 月 29 日 | ...

我在与客户交流时常听到一种常见的误解,认为所有泛型类型信息都会从 Java 类文件中擦除。这是完全不正确的。所有静态泛型信息都被保留,只有关于单个实例的泛型信息被擦除。因此,如果我有一个实现 List<String> 的类 Foo,那么我可以在运行时确定 Foo 实现了以 String 为参数的 List 接口。但是,如果我在运行时实例化一个 ArrayList<String> 实例,我无法通过该实例确定其具体的类型参数(我可以确定 ArrayList 需要类型参数)。在本文中,我将向您展示一些可用的泛型元数据的实际用法,这可以简化策略接口和实现(按其处理的对象类型区分)的创建。

我在许多应用程序中看到的一种模式是使用某种策略接口,其具体实现分别处理特定的输入类型。例如,考虑投资银行业的一个简单场景。任何上市公司都可以发布 公司行为 (Corporate Actions),从而对其股票产生实际变化。其中一个关键例子是股息支付,它按每股向所有股东支付一定数量的现金、股票或财产。在投资银行内部,接收这些事件通知并计算由此产生的权益非常重要,以便使交易账簿保持正确的股票和现金价值。

作为一个具体的例子,考虑持有 1,200,000 股 IBM 股票的 BigBank。IBM 决定派发每股 0.02 美元的股息。因此,BigBank 需要接收股息行动的通知,并在适当的时间更新其交易账簿,以反映新增的 24,000 美元现金。

权益的计算将根据执行的公司行为类型而有很大差异。例如,合并很可能导致一家公司的股票损失,并获得另一家公司的股票。

如果我们考虑这在 Java 应用程序中可能是什么样子,我们可以假设看到类似下面(大大简化)的例子


public class CorporateActionEventProcessor {

    public void onCorporateActionEvent(CorporateActionEvent event) {
        // do we have any stock for this security?

        // if so calculate our entitlements
    }
}

关于事件的通知可能通过外部各方的多种机制传入,然后发送到这个 CorporateActionEventProcessor 类。CorporateActionEvent 接口可能通过多种具体类来实现


public class DividendCorporateActionEvent implements CorporateActionEvent {

    private PayoutType payoutType;
    private BigDecimal ratioPerShare;

    // ...
}

public class MergerCorporateActionEvent implements CorporateActionEvent {

    private String currentIsin; // security we currently hold
    private String newIsin; // security we get
    private BigDecimal…

波士顿 Spring 小组首次会议

工程 | Mark Fisher | 2006 年 09 月 25 日 | ...

我非常高兴地宣布,新英格兰 Java 用户组 内的 Spring SIG(特别兴趣小组)将于本周四(2006 年 9 月 28 日)举行首次会议。Ramnivas Laddad(《AspectJ in Action》一书的作者,Interface21 负责人)将发表题为“AspectJ for Spring Developers”的演讲。这将是一个了解 Spring 2.0 中 AspectJ 集成增强功能的好机会。

您可以在此处阅读详情,如果您计划参加,请务必点击页面左侧的“注册”链接。

这个小组将为“所有关于 Spring 的事情”提供一个很好的论坛,并且最初计划每季度举行一次会议。我期待着建立一个社区,并亲自会见大波士顿地区的 Spring 用户。

特别感谢 NEJUG 主席 Steven Maienza 以及对成立 Spring 小组表示兴趣并在我搬到波士顿之前就将其付诸实施的 NEJUG 成员们。谢谢!

好久不见,博客更新

工程 | Rod Johnson | 2006 年 09 月 22 日 | ...

欢迎来到我的新博客!我自 2004 年 8 月以来就没有写过博客了,但受我们新团队博客的启发,我想试试提升自己。同时也被同事们的博客热情激励着。

目前我对很多话题都非常兴奋,并承诺未来写博客的频率会比每 2 年一次频繁得多...... 请继续关注我关于 Spring 2.0 及未来、面向对象设计、AOP 以及企业级 Java 未来的思考。

与此同时,我将分享我未来几个月的旅行安排(这至少可以作为我不定期发帖的借口)

  • 10 月 1-6 日:在丹麦奥胡斯举行的 JAOO 会议。
  • 10 月 10-11 日:在布拉格举行的 BEAWorld 活动。布拉格总是一座美丽的城市,尽管现在不再是一个便宜的目的地了。
  • 10 月 23 日:在旧金山举行的 Oracle Develop 活动上发表关于 Spring 2.0 的主题演讲,这是 Oracle Open World 会议的新增部分。这看起来将是一个大型会议。
  • 11 月:我将大部分时间在澳大利亚度过,部分是为了探访家人和朋友,部分是因为 Interface21 在那里开设了新办公室,由 Acegi Security 负责人 Ben Alex 领导。我将在各种活动中发表演讲,包括悉尼和布里斯班的 Spring 用户组会议、悉尼 JUG 以及墨尔本的一个论坛。
  • 11 月 27-28 日:在新加坡举行的 JAX Asia 会议。这是一个新会议。德国的 JAX 会议规模很大且内容有趣,所以我很期待。巧合的是,这正是我从悉尼返回伦敦的时候,所以我刚好在这个区域... 雅加达也有一个 JAX 会议,但我未来几个月的旅行耐受度已经达到极限了,实在无法再承诺参加那个会议。
  • 12 月 7-10 日:这将是最有趣的时候。The Spring Experience,在佛罗里达州好莱坞举行。今年我们预计将有超过 500 名开发者参加,并且照常会有精彩的演讲者。Keith 和以 No Fluff Just Stuff 而闻名的 Jay Zimmerman 一起,正在出色地组织这次活动。
  • 12 月 11-15 日:在安特卫普举行的 JavaPolis。一个大型欧洲会议,对参会者来说物超所值,并且总是有顶级的演讲嘉宾阵容——这可能是因为组织者 Stephan Janssen 似乎认识 Java 社区中的所有重要人物。当然,比利时总是值得一游,即使仅仅是为了啤酒。我尤其喜欢比利时白啤酒。
哎呀。即使写下这个列表也让我感到疲惫。幸运的是,过去几个月我飞行的次数比平时少了很多,所以我避免了英国机场的延误和限制。但很明显,到 12 月底我将非常需要休息了...

谢谢!Spring Framework 下载量突破 100 万

工程 | Rod Johnson | 2006 年 09 月 22 日 | ...

几周前,Spring Framework 项目在 SourceForge 上的主页下载量突破了 100 万次。实际总数可能要高得多,因为这个数字不包括每夜构建或 Spring 可以从其他网站下载的情况。而且,Spring 当然也包含在越来越多其他产品的分发中。还有 Spring.NET...

最重要的是,Spring 仍在保持增长势头:数字增长非常快。下载量最大的 Spring 版本是最新的生产发布版本 1.2.8,下载量已达 17.5 万次...

Spring 和 Maven 后续

工程 | Ben Hale | 2006 年 09 月 18 日 | ...

关于我最近发布的关于 Spring 和 Maven 的公告,已经有很多讨论了。这些讨论都非常好且有价值,但我确实想澄清一下我提到的一些观点。

首先也是最重要的一点,我们致力于支持选择 Maven 作为构建系统的 Spring 用户。这意味着从 Spring 2.0 RC4 开始,我们将帮助确保每个 Spring 版本发布时,Maven 仓库中都能提供准确的 POM 文件。这就是世界上最受欢迎的 JIRA 问题所讨论的内容。仅此而已。

Spring 自身内部构建系统的话题是一个...

Spring 2.0 RC4 发布:关于 DTD/Schema 重命名、Scope 属性的注意事项

工程 | Colin Sampaleanu | 2006 年 09 月 17 日 | ...

Spring Framework 2.0 RC4 已经发布。这是 Spring 2.0 最终版之前的最后一个候选发布版,您可以从发布公告本身以及JIRA 问题列表中了解更多关于本次发布的所有变化。

可能最需要注意的是,本次发布为 2.0 的 DTD 和 Schema (XSD) 引入了带版本的文件/位置名称。这是必要的,因为 XML bean 定义格式在 2.0 中得到了显著增强,但 1.2.x 的用户仍然需要能够引用 1.2.8 的 DTD。以下是使用 2.0“beans”schema 的一个例子(2.0 还包含许多其他新 schema,代表各种特殊的命名空间...

是的,我知道这现在是 JIRA 中得票最高的问题!

工程 | Ben Hale | 2006 年 09 月 15 日 | ...

您能猜到是什么吗?如果您猜到是关于 Spring 的Maven 包/构建,那您就赢了。12 月份来 The Spring Experience 找我,我们可以一起喝一杯冰镇饮料作为您的奖品。

我的过错 (Mea Culpa)

在过去的工作中,我在配置管理和构建系统方面做了很多工作。当我刚到 Interface21 工作时,我立即主动提出尽我所能帮助构建基础设施。接下来我就发现,Spring 和 Spring Web Flow 中所有与 Maven 相关的工单都分配给了我。然后由于我对 JIRA 的散漫态度,我让这个特定问题变得非常棘手。在过去的几个月里,关于 Spring 和 Maven 的事情确实一直在推进;有些事情我本应该在 JIRA 中发布,却没有。这导致在过去几天里,主要 JIRA 问题中出现了一些合理的抱怨。所以为了让大家了解最新情况,以下是目前的进展。

状态

对于过去几个月来对 Spring 2.0 和 Maven 感到绝望的人来说,你们的绝望不会持续太久了。Spring 社区已决定逐步将所有 Spring 项目迁移到 Maven。如您所知,Acegi 早已使用 Maven 很长时间了。最近 Spring-WS 项目也完成了迁移。我个人已经对 Spring Web Flow 的迁移进行了原型设计,并且大家普遍认为 Spring 也将进行迁移。

话虽如此,现在还不是庆祝的时候。将最后两个项目(Spring 和 Spring Web Flow)进行迁移不是一件小事(如果您不信,只需看看《用 Maven 构建更好的项目》一书)。因此,在临近 2.0 和 1.0 主要版本发布的时候,我们并不想进行迁移。我能告诉您的是,迁移是计划在版本发布之后完成的目标。

那么计划是什么?

实际上很简单。在接下来的几周里,我将为 Spring 和 Spring Web Flow 手动构建包含依赖列表的 POM 文件。目前的计划是在 Spring 和 Spring Web Flow 的最终版本发布时同时发布这些 POM 文件。版本发布后,在 Arjen 的帮助下,我将协助 Juergen 和 Keith 将他们的源代码树转换为 Maven 构建,并在 Continuum 中运行这些构建。

那么,作为用户,我在此期间能做些什么呢?

首先就是要耐心等待。对于这个问题我们沉默了这么久是我的错,希望这篇博文能让我们的思考过程更加透明。其次,我非常希望能得到测试方面的帮助。我的计划是在工作过程中将试用的 POM 文件提交到 CVS 和 SVN,并在 JIRA 问题中宣布已做出更改。正如您可能猜到的那样,手动创建 POM 文件容易出错(这是推动转向 Maven 构建的一个主要因素),所以我非常希望得到一些测试方面的帮助。在 JIRA 中留言、在论坛发帖以及给开发者邮件列表发邮件都是很好的反馈途径。

还有什么您想了解的吗?

再次强调,我希望这能帮助缓解社区中的一些挫败感,并让您了解我们未来的方向。当然,欢迎对当前计划提出任何评论(这里的评论区是个不错的选择),但我也想知道您是否有其他困惑的问题或遇到了令人沮丧的问题。如果您在下方留言或直接给我发邮件,我会尽力给您一个好的答复,并在此博客上发布或通过邮件私下回复您。

Spring OSGi 支持势头强劲

工程 | Adrian Colyer | 2006 年 09 月 07 日 | ...

这始于一件小事。只是我的一种直觉,认为 Spring 和 OSGi 应该能很好地结合在一起。想法是,通过让 Spring 应用程序部署在 OSGi 运行时中,我们可以为 Spring 应用程序带来更好的模块化、版本控制、运行时部署和更新能力。这是一个我从未真正宣传过的项目;我只是开始尝试,与一些人交流,并编写了一些早期原型代码。

结果表明,似乎有很多人对 Spring 和 OSGi 感兴趣。我们正在与来自 BEA、Oracle、IBM、Eclipse、OSGi 联盟以及其他几家公司的代表进行持续合作,以建立一个关于 Spring 对 OSGi 的支持应如何实现以及如何使在 OSGi 运行时上构建企业应用程序变得更容易的共享模型。该规范的最新版本已附在Spring JIRA 问题 1802 中。这里是规范文本的直接链接...

订阅 Spring 新闻通讯

订阅 Spring 新闻通讯,保持连接

订阅

提升自己

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

了解更多

获取支持

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

了解更多

即将举行的活动

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

查看全部