Spring Dynamic Modules 达到 1.0 版本!

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

嗯,这比我们最初预期的要长得多,但我真的很高兴地说 Spring Dynamic Modules 项目今天达到了 1.0 里程碑。 当我最初在 2006 年 9 月发布关于此主题的文章时(“Spring OSGi 支持获得动力”),最初的规范只是 Spring Framework 问题的附件,并且与更广泛的 OSGi 社区的联系才刚刚开始形成。

快进到十八个月后,Spring Dynamic Modules 已成为 Spring 产品组合中的一个成熟的项目,其提交者来自 SpringSource、BEA 和 Oracle。 BEA 和 Oracle 都在使用 Spring Dynamic Modules 来构建他们自己的基于 OSGi 的产品(例如,参见“WebLogic Event Server - 为什么我们使用 Spring”),并且 Spring Dynamic Modules 讨论组拥有近 1000 名成员。 OSGi Alliance 本身已经成立了一个 企业专家组,SpringSource 是积极成员。

每当我们在会议上谈论 OSGi 和 Spring Dynamic Modules 时,人们的兴趣都非常高。 那么,到底是怎么回事呢?

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

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

通过 1.0 版本,我们获得了一个针对模块生命周期和服务集成的可靠解决方案。 在 OSGi 服务平台上使用现有(非为在 OSGi 上运行而编写的)企业库时,类和资源加载以及可见性方面仍然存在陷阱,需要加以注意。 我们相信,我们已经在最近发布的 Spring Framework 2.5 中解决了 Spring 本身的所有这些问题。 下一个版本的 Spring Dynamic Modules 的重点将是为其他常用企业库提供实用的解决方案,从而使编写在 OSGi 上运行的 Spring 驱动的 Web 应用程序变得更加容易。

获取 Spring 新闻资讯

订阅 Spring 新闻资讯,保持联系

订阅

抢先一步

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

了解更多

获取支持

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

了解更多

即将举行的活动

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

查看全部