OSGI引入Spring DM实现对服务对象的管理

时间:2023-01-11 07:36:59

一、异同

  熟悉Spring的应该也都了解它的IOC的功能,那么对于在OSGI开发环境下,在使用IOC功能时有什么不同呢?最重要的一点就是Spring上下文对象,每个Spring-Powered Bundle都有自身的Spring上下文对象,而传统的J2EE开发环境只有一个Spring上下文对象,所以就导致在跨Bundle间的对象注入需要通过特定命名空间的配置才能实现,而如果在本Bundle间的依赖注入则跟我们所熟悉通过配置文件注入方式一致。


二、配置文件

  在OSGI开发环境下,通过引入Spring DM将Spring与OSGI进行无缝地衔接,在META-INF目录下新建名为spring的文件夹,Spring DM就会自动扫描该文件夹下的配置文件,添加了该配置文件的Bundle在OSGI中称为pring-Powered Bundle

              OSGI引入Spring DM实现对服务对象的管理


三、OSGI命名空间下的配置标签

  1<osgi:service>该配置标签的作用是将托管的Spring Bean转化为OSGI服务,从而简化了注册服务的代码编写

  OSGI引入Spring DM实现对服务对象的管理

  2<osgi.reference>该配置标签与<osgi:service>对应,它的作用就是将一个OSGI服务转化为Spring中的Bean,从而简化从BundleContext中引入服务的代码编写

  OSGI引入Spring DM实现对服务对象的管理


通过引入Spring DM,跟Spring如同一辙的配置,使得开发人员在比较熟悉Spring的情况,能够很快的实现功能开发,减少学习成本。

下一篇随笔将对Spring DM提供的对Bundle的监听服务接口的配置