在 Spring网站上,Spring Dynamic Modules 是这样定义的:
……便于建造在 OSGi 框架中运行的 Spring 应用。用这种方式编写的 Spring 应用具有更好的模块分离,能在运行中的系统上增减、删除及修改模块,能同时部署同一个模块的多个版本(且使用模块的程序会被自动绑定到正确版本的模块上),还提供了一个动态服务模型。
InfoQ 编辑 Ryan Slobojan 在今年一月份曾经报道过 Spring Dynamic Modules 1.0 版的情况。而这次 1.1.0 版发布的新闻稿中列举了以下新特性:
- OSGi 应用的 Web 支持(Servlet、JSP、Taglibs)
- Spring-MVC 集成
- Classpath 扫描
- Spring-DM 扩展器和 Web 扩展器的自定义挂钩
- 给 OSGi 服务导入程序和应用上下文的事件通知
- 调整 OSGi 代理基础架构
- OSGi 集合的“贪婪代理(greedy-proxy)”功能
- 集成 SpringSource Bundle Repository
- 可自定义 Spring 支持下的 bundles 的位置
- 可插拔的服务依赖检测机制
- OSGi 导入程序可访问原生的 OSGi ServiceReference
- 新的 Web 示例程序
其中最重要的是增加了 Web 支持,使之与 Tomcat、Jetty 之类的 Web 容器集成。网站上是这样说的: > 通过对 OSGi 平台上的 Web 应用的透明支持……Spring DM 让使用 Servlet、JSP、taglib 等技术的 WAR 无需更改或很小的更改就能在 OSGi 平台上使用。
1.1.0 版中提供的新 Web 示例目的在于帮助理解新的 Web 支持的工作原理。Spring Dynamic Modules 正在持续改进之中,不断提供新的功能,改掉旧的错误。虽然它还很新,但在背后支持它的是一个成熟的开发团队和公司。
要想进一步了解 Spring Dynamic Modules 1.1.0,请参阅它的参考指南。
评论