写点什么

Spring Dynamic Modules for OSGi:简化 OSGi 应用的开发

  • 2008-01-25
  • 本文字数:1521 字

    阅读完需:约 5 分钟

Spring Dynamic Modules for OSGi (也就是从前的Spring-OSGi)今天发布了 1.0 版本。InfoQ 就这个版本的发布以及它能为 Spring 社区提供什么采访了 SpringSource 的 CTO—— Adrian Colyer 和 Spring Dynamic Modules 项目的领导人—— Costin Leau

Adrian Colyer 阐述了 Spring Dynamic Modules 项目背后的思想:

我们的根本目标是为了让应用开发人员在编写企业应用时获得 OSGi 平台(模块化、版本化支持、模块生命周期以及管理)带来的优点。 有些软件提供商已经在其产品中使用 OSGi, 但并没有把 OSGi 的这些优点提供给部署在其产品上的应用享用。我们则希望能够尽可能简单的使用 OSGi,就像这样:代码和 OSGi 服务平台没有强耦合 (这样才能保证单元测试容易进行),同时也不需要明确的调用 OSGi 服务平台的接口。Spring Dynamic Modules 将 Spring 和 OSGi 服务平台完美的结合在了一起,为开发人员提供更加简单、强大的基础框架。

Cosit Leau 谈到 1.0 发行版的主要目标是为 Spring 应用稳定、高效的在 OSGi 环境中运行提供基础,并随后指出了此发行版的主要特性:

  • 自动发现 Spring bundles——每个 Spring Bundle 都会由和 OSGi 兼容的<a href="http://static.springframework.org/osgi/docs/1.0/api/org/springframework/osgi/service/exporter/support/OsgiServiceFactoryBean.html">OsgiServiceFactoryBean</a>创建 Application Context,并且这个 Application Context 会暴露为一个 OSGi 服务;

  • 引用和提供 Spring 服务——把 Spring 服务作为 OSGi 服务提供仅需要一行 XML,引用 OSGi 服务也同样如此;

  • 动态处理服务引用和集合——如果服务升级或重新部署,不用重启应用就可以自动的获取到新版本的服务实例;这对于实现同一接口的多个服务构成的集合也是一样,当服务被安装 / 卸载时,他们会被自动加入集合或是从集合中删除;

  • 事件通知监听机制——如需监听指定 OSGi Service 的 bind/unbind、register/unregister 事件,只用一行 xml 就可以注册一个这样的 bean 了;

  • 全面的集成测试框架——集成测试工具位于 org.springframework.osgi.test包,其中包含了很多使用了 OSGi 的单元测试类。

Leau 提到了在参考文档中有1.0 版所有特性的详细描述。

由于OSGi 规范起源于移动领域,所以InfoQ 向Colyer 询问了Spring Dynamic Modules 是否也有计划推出移动版本。Colyer 说:由于目前Spring Dynamic Modules 是依赖于 Spring 2.5 的, 而 Spring 2.5 又依赖于 JDK 1.4,因此目前不可能而且也没有推出 Spring Framework 的移动版本的计划。不过 Colyer 同时也表达了这样的意思:目前 OSGi 的开发人员中很大一部分都对如何简化应用的开发有非常浓厚的 兴趣,而这些人中又有大部分从事的是企业应用领域,对于移动版本的需求将会决定 Spring 是否推出相应的移动版本的计划。

在问起 Spring Dynamic Modules 的未来时,Colyer 说到:

1.0 发行版提供了创建基于 OSGi 的 Spring 应用的基础。1.1 版本将会致力于简化在 OSGi 服务平台中使用公用企业库,其中的重点就是让基于 OSGi 的 Web 应用比目前容易创建。 SpringSource 作为 OSGi 企业专家组的活跃成员之一,希望能够把 Spring Dynamic Modules 项目中得出的优秀经验编写到 OSGi R5 规范中去。Spring Dynamic Modules 毫无疑问会及时的实现这些标准。

Colyer 最后表示目前没有任何计划去支持其他的动态模块化框架,就像 JSR 277,原因是:“目前的工业标准很明显是基于 OSGi 的”。

查看英文原文 Spring Dynamic Modules for OSGi: simplified development of OSGi applications


译者简介:BlueDavy,曾编写《OSGi 实战》、《OSGi 进阶》两篇 Opendoc,致力于 OSGi 在国内的推广和发展,现沉迷于大型分布式应用基础平台的研究和实现。

2008-01-25 07:004171

评论

发布
暂无评论
发现更多内容

IO多路复用中的Select/poll/epoll总结全乎了

知识浅谈

IO多路复用 9月月更

拆分电商系统为微服务

张立奎

大型网站架构

源字节1号

软件架构 后端开发

5 个 JavaScript 写法小技巧分享

掘金安东尼

JavaScript 9月月更

架构实战营模块六作业

zhihai.tu

在互联网,摸爬滚打了几年,我悟了。面对如今经济形势,普通打工人如何应对?

HullQin

Go golang 后端 websocket 9月月更

Spring源码分析(八)Spring 所有BeanFactoryPostProcessor扩展接口

石臻臻的杂货铺

spring

从改善设计的角度理解TDD

Bright

敏捷 TDD

PANAMA: 共享机器学习集群的网内聚合框架

俞凡

大数据 架构 网络

都2022年了,Python Web框架你不会只知道Django和Flask吧?

梦想橡皮擦

Python 9月月更

三种获取URL参数值的方法

devpoint

JavaScript URL参数解析 9月月更

云原生(三十五) | Prometheus入门和安装

Lansonli

云原生 k8s 9月月更

记一次 swap 导致系统盘高 IOPS 问题排查

卫智雄

linux运维

Java 键盘输入n个数进行排序输出

排序 java基础 9月月更

FreeRTOS记录(一、熟悉开发环境以及CubeMX下FreeRTOS配置)

矜辰所致

STM32CubeMX FreeRTOS 9月月更

从改善设计的角度理解TDD (2)

Bright

敏捷 TDD

redis数据结构之压缩列表

急需上岸的小谢

9月月更

Mavan:自定义骨架及工程初始化

程序员架构进阶

maven 低代码 9月日更 9月月更

在世界人工智能大会,看京东AI向产业奔涌

脑极体

日拱算法:什么是“情感丰富的文字”?

掘金安东尼

9月月更

Java问题解决录: 运行时抛出NoSuchMethodError / NoSuchFieldError异常

崔认知

「知识点」PropTypes提供的验证器

叶一一

JavaScript 前端 9月月更

2022-09-03:n块石头放置在二维平面中的一些整数坐标点上 每个坐标点上最多只能有一块石头 如果一块石头的 同行或者同列 上有其他石头存在,那么就可以移除这块石头。 给你一个长度为 n 的数组

福大大架构师每日一题

算法 rust 福大大

Kubernetes网络插件详解 - Calico篇 - 网络基础

巨子嘉

设计模式的艺术 第二十四章策略设计模式练习(开发一款飞机模拟系统,该系统主要模拟不同种类飞机的飞行特征与起飞特征,为了将来能够模拟更多种类的飞机,试采用策略模式设计该飞机模拟系统)

代廉洁

设计模式的艺术

挑战30天学完Python:Day1火力全开-初识Python(含系列大纲)

MegaQi

9月月更 挑战30天学完Python

k8s自定义controller三部曲之三:编写controller代码

程序员欣宸

Kubernetes Controller 9月月更

Spring源码分析(七)扩展接口BeanPostProcessors源码分析

石臻臻的杂货铺

spring 9月月更

npm run 脚本背后的事情

汪子熙

node.js 开源 npm YARN 9月月更

Spring Dynamic Modules for OSGi:简化OSGi应用的开发_Java_Ryan Slobojan_InfoQ精选文章