一、异同

  熟悉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命名空间下的配置标签

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

  

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

  


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

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

OSGI引入Spring DM实现对服务对象的管理的更多相关文章

  1. Spring DM 2.0 环境配置 解决Log4j问题

    搭建 spring dm 2.0 环境出的问题 log4j 的问题解决办法是 一.引入SpringDM2.0的Bundle,最后完成如下图所示:注意:要引入slf4j.api.slf4j.log4j. ...

  2. Spring DM所提供的Bundle监听接口OsgiBundleApplicationContextListener

    通过使用Spring DM提供的监听接口,我们可以更好的对服务进行管控,其实该接口也非常简单就能使用上,只要自定义一个类实现OsgiBundleApplicationContextListener接口 ...

  3. Spring.DM web开发环境搭建

    作为一个初学者来说,搭建好Spring.DM 的web开发环境还是有些麻烦的.我就遇到了N多麻烦,走了很多弯路.本文介绍了2种比较简单的搭建Spring.DM OSGi web开发环境的搭建.   第 ...

  4. Spring.DM版HelloWorld

    本文主要描述使用Spring.DM2.0,创建OSGi的HelloWorld演示程序,理解Spring.DM的OSGi框架实现机制.   环境描述: 项目 版本 Eclipse 3.7.x JDK 1 ...

  5. 使用Sidecar将Node.js引入Spring Cloud

    网上看到的一篇文章,觉得写得挺好,现转载于此,以方便需要的网友查阅. 该文章介绍了非JAVA语言提供的应用集成到Spring Cloud的这样一个实现,以便我们使用其他语言作为参考. 感谢原作者分享, ...

  6. Spring第一篇【介绍Spring、引入Spring、Spring六大模块】

    前言 前面已经学习了Struts2和Hibernate框架了.接下来学习的是Spring框架-本博文主要是引入Spring框架- Spring介绍 Spring诞生: 创建Spring的目的就是用来替 ...

  7. JavaWeb_(Spring框架)在Struts+Hibernate框架中引入Spring框架

    spring的功能:简单来说就是帮我们new对象,什么时候new对象好,什么时候销毁对象. 在MySQL中添加spring数据库,添加user表,并添加一条用户数据 使用struts + hibern ...

  8. OSGI与Spring结合开发web工程

    简介: 作为一个新的事实上的工业标准,OSGi 已经受到了广泛的关注, 其面向服务(接口)的基本思想和动态模块部署的能力, 是企业级应用长期以来一直追求的目标.Spring 是一个著名的 轻量级 J2 ...

  9. 使用 IDEA 构建聚合工程并引入 Spring Boot

    简介 聚合工程里可以分为: Project 项目,也可称为顶级项目.顶级工程.父工程 Module 模块,也可称为子模块.子工程 总结一下: 这两者之间是父子继承的关系,即 模块继承顶级项目,模块之间 ...

随机推荐

  1. ADO.Net 数据库 删除

    删除数据库里的信息和之前增加,修改大同小异,其写法更加简单,也是把SQL语句写为删除语句 删除一条数据,只需要获取并接收到这条数据唯一的能够代表这条数据的信息,比如主键 代码演示: using Sys ...

  2. room 二分图最大匹配KM

    #include<bits/stdc++.h> #define fi first #define se second #define INF 0x3f3f3f3f #define fio ...

  3. redis 存储java对象 两种方式

    根据redis的存储原理,Redis的key和value都支持二进制安全的字符串 1.利用序列化和反序列化的方式存储java对象我们可以通过对象的序列化与反序列化完成存储于取出,这样就可以使用redi ...

  4. Push API

    [Push API] The Push API gives web applications the ability to receive messages pushed to them from a ...

  5. jms学习笔记

    https://www.cnblogs.com/zhuxiaojie/p/5564187.html //创建一个session //第一个参数:是否支持事务,如果为true,则会忽略第二个参数,被jm ...

  6. Pandas文本操作之读取操作

    读写文本格式的数据 pandas中的解析函数 函数 说明 read_csv 从文件.url.文件型对象中加载带分隔符的数据,默认分隔符为逗号 read_table 从文件.url.文件型对象中加载带分 ...

  7. angularjs $watch

    参考 https://blog.csdn.net/u010451286/article/details/50635839 scope.$watch("field1 + field2" ...

  8. i2c初步理解

    引用自:http://www.cnblogs.com/zym0805/archive/2011/07/31/2122890.html I2C是由Philips公司发明的一种串行数据通信协议,仅使用两根 ...

  9. Android 性能测试之内存 --- 追加腾讯性能案例,安卓抓取性能扫盲帖

    内存测试: 思路 目前做的是酒店APP,另下载安装几个个第三方酒店的APP以方便对比(相当于可以做竞品测试) 数据的获取来源是ADB底层命令,而且最好是不需要root权限,因为很多手机root很麻烦或 ...

  10. 206. Reverse Linked List (List)

    Reverse a singly linked list. /** * Definition for singly-linked list. * struct ListNode { * int val ...