Spring 2.0 Maven POM 已准备就绪

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

在众多发布日里,这是关于 Spring 2.0 的最后一个公告。Spring 2.0 的 Maven POMs 已上传到 Spring 的私有仓库。如果想直接指向它,请查看 https://svn.sourceforge.net/svnroot/springframework/repos/repo/。如果愿意等待,它们应该会在接下来的几天内复制到 Ibiblio Maven 仓库。

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


更新于 10/3 22:03:添加了关于 ViewVC 的段落

Spring 2.0 正式版发布

发布 | Rod Johnson | 2006年10月3日 | ...

我们很高兴宣布期待已久的 Spring Framework 2.0 版本正式版现已发布。

Spring 2.0 Released

下载 | 文档 | 更新日志 

作为领先的全栈 Java/Java EE 应用框架,Spring 为许多项目带来了显著优势,减少了开发工作和成本,同时提高了测试覆盖率和质量。

这个稳定、生产级版本的发布经历了 9 个月的积极开发。  在这段短暂的时间里,Spring 2.x 系列已经得到了巨大的成熟,受益于 9 个里程碑版本超过 15 万次的抢先体验下载,解决了超过 750 个 JIRA 问题,其中 50 个引入了重要的ories 新功能。

新特性?

我们相信三个特性概括了用户可以从 Spring 2.0 系列中期待的内容:简单强大成熟


2.0 版本为框架的整体使用模型带来了重大的新简化。  正如我们现有用户所知,Spring 的核心是 Bean 容器,它驱动 Java 和 Java EE 应用程序的配置。  在 2.0 版本中,通过引入自定义的 Bean 配置方言,许多常见的配置任务得到了简化。  这对您意味着什么?

这意味着您现在可以

  • 在一行配置代码中使您的业务服务具备事务性。
  • 在一行配置代码中从 JNDI 查找对象。
  • 在一行配置代码中将外部化属性暴露给您的服务。
  • 使用单个注解为您的数据访问对象应用一致的异常处理策略。
  • 通过定义一个配置标签调用无状态远程 EJB。  不再需要自定义服务定位器或业务代表。
框架的各个模块持续简化,让您可以
  • 在一行代码中编写参数化 JDBC 查询。
  • 部署 Spring MVC 控制器时应用约定优于配置
  • 使用 Spring JSP 标签减少开发输入表单时的输入量。


Spring 2.0 的一个主要目标是让常见任务变得更容易。  2.0 版本也为以优雅的方式解决更困难的问题打开了令人兴奋的新大门。  在 2.0 中,您可以

  • 使用 AspectJ 简洁的切点表达式语言将自定义行为编织到程序执行的多个点。
  • 接收具有事务和线程安全保证的异步 JMS 消息。  观看演示
  • 为您的应用程序开发自己的 Bean 配置方言
  • 以线程安全的方式从“请求”和“会话”范围等自定义范围注入对象。
  • 从您的 Java 应用程序调用 Groovy、Beanshell 和 JRuby 脚本。
  • 使用复杂的线程和连接池选项安排任务异步运行。

2.0 版本建立在 Spring 1.x 奠定的基础之上。  这个新版本提供了主要的新功能,同时尽可能保留了向后兼容性。

自 2004 年 3 月发布以来,下载量超过一百万次,Spring 1.x 使使用普通 Java 对象 (POJO) 开发复杂应用程序成为事实上的标准。  2.x 系列在此广受认可的最佳实践基础上,在保持与现有 Spring 1.x 系列完全兼容的同时,提供了新的简化和强大功能。  用户可以期待升级过程是直接的;在大多数情况下,只需将 1.2.8 的 JAR 文件替换为 Spring 2.0 中包含的文件即可。

请享用,谢谢

Spring 2.0 代表了过去一年中许多人的共同努力。  从 Interface21 的主要开发者 Juergen、Rob、Rick 和 Costin,到我们的支持伙伴 BEA 和 Oracle,再到社区中贡献创新、补丁、文档、bug 报告和测试的许多人——这里凝聚了大量的汗水和辛勤工作。  我们真心希望您在使用这个新版本时能像我们构建它一样感到快乐。  请尽情享用,请放心:工作不会止步于此。

诚挚地,

Spring 团队

 


更多资源

  • 参加于12月7日至10日在佛罗里达州好莱坞举行的 2006 Spring Experience 大会,这是 Spring 社区的顶级盛会。  在10月16日前注册可为您的团队获得早鸟折扣。
  • 通过路线图跟踪未来的 Spring 2.x 开发。
  • 收藏此页,以获取更多展示 2.0 新功能的截屏视频和代码示例。

利用泛型元数据

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

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

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

举个具体例子,考虑持有 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年9月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年9月22日 | ...

欢迎来到我的新博客!我自 2004 年 8 月以来就没有写过博客,但受到我们新团队博客的启发,想尝试提升一下水平。我也因同事们的博客热情而感到惭愧。

目前我对许多话题感到非常兴奋,并承诺将来会比每两年一次的频率写博客多得......敬请期待我关于 Spring 2.0 及后续、OO 设计、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日:这将是最有趣的一场活动。Spring Experience,在佛罗里达州好莱坞举行。今年我们预计将有超过 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 2.0 RC4 开始,确保每个 Spring 版本都在 Maven 仓库中提供准确的 POM。这就是世界上最受欢迎的 JIRA 问题的全部内容。仅此而已。

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

Spring 2.0 第 4 个候选版本发布

发布 | Juergen Hoeller | 2006年9月17日 | ...

我们很高兴宣布 Spring 2.0 RC4 已发布。  下载 | 文档 | 更新日志

这是 Spring 2.0 正式版发布前的最后一个候选版本。  RC4 包含了许多进一步的 bug 修复和各领域的改进,以及一些 minor 新功能(例如 JMS 支持)。请参阅更新日志和 JIRA 问题列表了解所有详情。  最显著的变化包括...

新增与改进

  • 此版本为 2.0 DTD 和 XSD 引入了带版本的文件名。如果您的 bean 定义文件基于 2.0 XSD 或 2.0 特定的 DTD 特性构建,请进行调整。  例如

<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xsi:schemaLocation="
                http://www.springframework.org/schema/beans
                http://www.springframework.org/schema/beans/spring-beans-2.0.xsd">

    <!-- 在此处定义您的 bean -->

</beans>

  • 正如您所料,Spring 1.2 DTD 在其已建立的 spring-beans DTD 文件名下仍然得到全面支持。
  • 现在,我们支持的每个 schema 的 2.0 XML 配置元素和属性都已得到充分的文档记录。  特别感谢 Rick Evans 在此领域的贡献。
  • 从本版本开始,Apache OJB 支持 (org.springframework.orm.ojb) 不再随核心 Spring 发行版一起提供。现在可以从 Spring Modules 项目获取。
  • Spring 的 JPA 支持现在已针对 Oracle TopLink Essentials v2 b16 以及 Hibernate EntityManager 3.2.0 CR2 进行了全面测试。我们的广泛集成测试套件现在对这两个 JPA 提供程序都完全通过。我们目前正在以同样的方式涵盖 OpenJPA。

我们期待您对本版本的反馈。

祝好,

Juergen Hoeller
Spring Framework 开发负责人

Spring 2.0 RC4 发布:关于 DTD/Schema 重命名和 Scope 属性的提醒

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

Spring Framework 2.0 RC4 已发布。这是 Spring 2.0 正式版发布前的最后一个候选版本,您可以从发布公告本身以及 JIRA 问题列表了解此版本中所有更改的完整列表。

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

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

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

您能猜出是什么吗?如果您猜是 Spring 的 Maven bundle/构建,您就赢了。12 月份来 Spring Experience 大会见我,我们将一起享用一杯冰镇饮料作为您的奖品。

我的错

在我过去的职业生涯中,我做了很多关于配置管理和构建系统的工作。当我刚到 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)并非易事(如果您不相信,只需看看《Better Builds with 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 新闻邮件

订阅 Spring 新闻邮件保持联系

订阅

领先一步

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

了解更多

获取支持

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

了解更多

即将举行的活动

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

查看全部