Spring 2.0 Maven POM 准备就绪

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

在充满公告的一天,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 年 9 月 29 日 | ...

在与客户交谈时,我经常听到一个误解,即所有关于泛型类型的信息都会从您的 Java 类文件中擦除。这完全是错误的。所有静态泛型信息都会保留,只有单个实例的泛型信息会被擦除。因此,如果我有一个类Foo,它实现了List<String>,那么我可以在运行时确定Foo实现了由String 参数化的 List 接口。但是,如果我在运行时实例化ArrayList<String> 的实例,则无法获取该实例并确定其具体的类型参数(我可以确定ArrayList 需要类型参数)。在本条目中,我将向您展示一些可用泛型元数据的实际用法,这些用法简化了策略接口和实现的创建,这些接口和实现因它们处理的对象类型而异。

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

作为一个具体的例子,考虑一下 BigBank 持有 1,200,000 股 IBM 股票。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 年 9 月 25 日 | ...

我非常高兴地宣布,新英格兰 Java 用户组的 Spring SIG 将于本周四(2006 年 9 月 28 日)举行我们的第一次会议。Ramnivas Laddad(《AspectJ in Action》的作者和 Interface21 首席)将发表题为“面向 Spring 开发人员的 AspectJ”的演讲。这将是一个了解 Spring 2.0 中 AspectJ 集成增强功能的绝佳机会。

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

该小组将为“所有 Spring 相关事宜”提供一个极好的论坛,最初将大约每季度举行一次会议。我期待着建立一个社区,并亲自与波士顿大都会区的其他 Spring 用户会面。

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

很久没写博客了

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

欢迎来到我的新博客!自从 2004 年 8 月以来,我还没有写过博客,但我们的新团队博客激发了我提升自己水平的灵感。我的同事的博客热情也让我感到羞愧。

目前,我对很多话题都感到非常兴奋,并承诺今后比每两年写一次博客的频率高得多……敬请关注我对 Spring 2.0 及其未来、OO 设计、AOP 和企业 Java 未来的一些想法。

同时,我将分享未来几个月的旅行计划(这至少会为我不总是定期发布帖子提供一个借口)

  • 10 月 1 日至 6 日:丹麦奥胡斯举行的JAOO 会议。
  • 10 月 10 日至 11 日:布拉格举行的BEAWorld 活动。一直以来都是一个美丽的城市,尽管布拉格不再是一个廉价的目的地。
  • 10 月 23 日:在旧金山举行的 Oracle Open World 会议的新部分Oracle Develop 活动上发表关于 Spring 2.0 的主题演讲。这似乎将是一个大型会议。
  • 11 月:我将大部分时间在澳大利亚度过,部分原因是探望家人和朋友,部分原因是 Interface21 在那里开设了新办事处,由 Acegi Security 负责人 Ben Alex 领导。我将在各种活动中发表演讲,包括悉尼和布里斯班的 Spring 用户组、悉尼 JUG 和墨尔本的一个论坛。
  • 11 月 27 日至 28 日:新加坡举行的 JAX Asia 会议。这是一个新的会议。德国的 JAX 会议规模很大,内容也很有趣,所以我对此期待已久。令人惊讶的是,这正是我从悉尼返回伦敦的时候,所以我就在附近……雅加达也有一场 JAX 会议,但我已经达到了未来几个月旅行耐受力的极限,因此无法参加那场会议。
  • 12 月 7 日至 10 日:这将是最有趣的一件事。佛罗里达州好莱坞举行的Spring 体验。今年我们预计将有 500 多名开发人员,以及往常一样优秀的演讲者。Keith 正在与 No Fluff Just Stuff 的 Jay Zimmerman 共同出色地组织它。
  • 12 月 11 日至 15 日:安特卫普举行的 JavaPolis。一个大型的欧洲会议,对与会者来说非常有价值,并且总是有顶级的演讲者阵容——可能是因为组织者 Stephan Janssen 似乎认识 Java 社区中所有重要人物。当然,比利时也总是值得一游的,即使只是为了啤酒。我个人非常喜欢比利时白啤。
哎呦。即使写下这个清单也让我感到疲倦。幸运的是,在过去的几个月里,我的飞行次数比平时少了很多,因此我避免了英国机场的延误和限制。但很明显,到 12 月底,我将非常需要休息……

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

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

几周前,Spring Framework 项目从其SourceForge 上的主页下载量突破了 100 万次。真实的总数可能要高得多,因为此数字不包括夜间构建或可以下载 Spring 的其他站点。当然,Spring 还包含在越来越多的其他产品的发行版中。然后还有Spring.NET……

最重要的是,Spring 继续发展势头:数字正在快速增长。下载次数最多的 Spring 版本是最新的生产版本 1.2.8,下载次数已达 175,000 次……

Spring 和 Maven 后续

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

关于我关于 Spring 和 Maven 的最近公告,已经有很多讨论。这些讨论都非常好且有价值,但我确实想澄清我所做的一些要点。

首先也是最重要的是,我们致力于支持使用 Maven 作为其首选构建系统的 Spring 用户。这意味着我们将帮助确保在每次 Spring 发布(从 Spring 2.0 RC4 开始)时,Maven 存储库中都提供准确的 POM。这就是世界上最受欢迎的 JIRA 问题 的全部内容。仅此而已。

Spring 自身内部构建系统的话题是……

Spring 2.0 RC4 发布:有关 DTD/Schema 重命名和作用域属性的提示

工程 | Colin Sampaleanu

| 2006年9月17日 | ...

Spring Framework 2.0 RC4 已经发布。这是 Spring 2.0 正式版之前的最后一个候选版本,您可以在发布公告中了解更多信息,以及查看JIRA问题列表,以获取此版本中所有更改的完整列表。

可能最需要注意的是,此版本为 2.0 DTD 和模式 (XSD) 引入了版本化的文件/位置名称。这是必要的,因为 2.0 版本的 XML bean 定义格式得到了显著增强,但 1.2.x 用户仍然需要能够引用 1.2.8 DTD。以下是如何使用 2.0 的“beans”模式的示例(2.0 还附带了许多其他新的模式,代表各种特殊的命名空间……

是的,我知道它现在是 JIRA 中投票最多的问题了!

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

你能猜到是什么吗?如果你猜到是 Spring 的Maven 包/构建,你赢了。12 月来Spring 体验大会找我,我会用一杯冰镇饮料作为你的奖品。

我的过错

在过去,我做了很多配置管理和构建系统方面的工作。当我开始在 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年9月7日 | ...

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

事实证明,很多人都对 Spring 和 OSGi 感兴趣。我们正在与 BEA、Oracle、IBM、Eclipse、OSGi 联盟和其他几个组织的代表合作,建立一个关于 Spring 如何支持 OSGi 以及我们如何轻松地在 OSGi 运行时环境上构建企业应用程序的共享模型。规范的最新版本附加在Spring JIRA 问题 1802中。这是一个指向规范文本的直接链接……

Spring 2.0 中的 Before Advice

工程 | Ben Hale | 2006年9月5日 | ...

如大多数人所知,Spring 2.0 的一项重大改进是增加了 AspectJ 切点语言,以及与 AspectJ 的整体更好集成。虽然我认为每个人都相信从长远来看这将是一个巨大的好处,但它也导致了一些问题。我们发现 Spring AOP 一直以来的一些行为,AspectJ 从未实现过。

出现的一个大问题是 Before Advice 的行为。如果你在 Spring 1.x 中使用过 Spring AOP,你可能知道 Spring 允许你在将参数传递给目标之前更改参数值……

获取 Spring 时事通讯

与 Spring 时事通讯保持联系

订阅

领先一步

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

了解更多

获取支持

Tanzu Spring 在一个简单的订阅中提供 OpenJDK™、Spring 和 Apache Tomcat® 的支持和二进制文件。

了解更多

即将举行的活动

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

查看全部