Spring动态模块达到1.0版!

工程 | Adrian Colyer | 2008年1月25日 | ...

好吧,这花费的时间比我们最初预期的要长得多,但我非常高兴地宣布Spring动态模块项目今天达到了1.0里程碑。当我于2006年9月首次发布关于此主题的文章("Spring OSGi支持势头增强")时,最初的规范只是一个针对Spring框架问题的附件,与更广泛的OSGi社区的联系才刚刚开始建立。

十八个月后,Spring动态模块已成为Spring产品组合中的一个成熟项目,其贡献者来自SpringSource、BEA和Oracle。BEA和Oracle都在使用Spring动态模块来构建他们自己的基于OSGi的产品(例如,参见"WebLogic事件服务器——我们为什么使用Spring"),Spring动态模块讨论组拥有近1000名成员。OSGi联盟本身已经成立了一个企业专家组,SpringSource是该组的活跃成员。

每当我们在会议上谈到OSGi和Spring动态模块时,人们的兴趣都非常高。那么,这一切究竟是怎么回事呢?

OSGi服务平台是一个久经考验的轻量级运行时,它提供了一个“用于Java的动态模块系统”。它已被用于从嵌入式设备、汽车和电信应用程序到IBM、BEA和Oracle等公司的大型企业中间件产品的基础设施。Spring动态模块专注于使您能够在构建您自己的企业应用程序时利用OSGi服务平台。使用Spring动态模块构建并在OSGi服务平台上运行的应用程序由一组对等Spring应用程序上下文(每个OSGi捆绑包一个)组成,它们通过OSGi服务注册表进行交互。这是一个面向服务的架构,但完全位于您的虚拟机内部,使用常规的Java引用来访问服务。这样构建的应用程序的优点包括:

  • 强大的模块化:每个模块的内部结构保持私有,只有您选择导出到模块外部的包和bean(服务)才能公开提供给其他模块。
  • 动态模块生命周期:您可以使用标准OSGi服务平台生命周期功能独立安装、卸载、启动、停止和更新每个模块(应用程序上下文)。Spring动态模块提供了对跨越模块边界的服务引用的智能管理,以便即使提供该服务的模块就地更新,您也可以继续使用恒定的引用。
  • 支持模块版本控制。可以同时部署同一Java包(以及库)的多个版本。OSGi平台负责将这些库的用户绑定到适当的版本,并确保您只看到实现版本兼容接口的服务。
  • 对已安装模块、它们导入和导出的服务和包以及模块在运行时如何连接在一起的运行时洞察。
能够在其他模块保持运行状态的同时就地更新模块,这在开发过程中可以真正提高生产力。

凭借1.0版本的发布,我们为模块生命周期和服务集成提供了一个可靠的解决方案。当谈到在OSGi服务平台上使用现有的(并非编写为在OSGi上运行)企业库时,仍然存在与类和资源加载以及可见性相关的陷阱。我们相信,我们在最近发布的Spring Framework 2.5中已经解决了Spring自身的所有这些问题。Spring动态模块的下一个版本的重点将是为其他常用企业库提供务实的解决方案,以便更容易编写在OSGi上运行的Spring驱动的Web应用程序。

获取Spring新闻通讯

通过Spring新闻通讯保持联系

订阅

领先一步

VMware提供培训和认证,以快速提升您的进度。

了解更多

获取支持

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

了解更多

即将举行的活动

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

查看全部