OSGI引入Spring DM实现对服务对象的管理
一、异同
熟悉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实现对服务对象的管理的更多相关文章
- Spring DM 2.0 环境配置 解决Log4j问题
搭建 spring dm 2.0 环境出的问题 log4j 的问题解决办法是 一.引入SpringDM2.0的Bundle,最后完成如下图所示:注意:要引入slf4j.api.slf4j.log4j. ...
- Spring DM所提供的Bundle监听接口OsgiBundleApplicationContextListener
通过使用Spring DM提供的监听接口,我们可以更好的对服务进行管控,其实该接口也非常简单就能使用上,只要自定义一个类实现OsgiBundleApplicationContextListener接口 ...
- Spring.DM web开发环境搭建
作为一个初学者来说,搭建好Spring.DM 的web开发环境还是有些麻烦的.我就遇到了N多麻烦,走了很多弯路.本文介绍了2种比较简单的搭建Spring.DM OSGi web开发环境的搭建. 第 ...
- Spring.DM版HelloWorld
本文主要描述使用Spring.DM2.0,创建OSGi的HelloWorld演示程序,理解Spring.DM的OSGi框架实现机制. 环境描述: 项目 版本 Eclipse 3.7.x JDK 1 ...
- 使用Sidecar将Node.js引入Spring Cloud
网上看到的一篇文章,觉得写得挺好,现转载于此,以方便需要的网友查阅. 该文章介绍了非JAVA语言提供的应用集成到Spring Cloud的这样一个实现,以便我们使用其他语言作为参考. 感谢原作者分享, ...
- Spring第一篇【介绍Spring、引入Spring、Spring六大模块】
前言 前面已经学习了Struts2和Hibernate框架了.接下来学习的是Spring框架-本博文主要是引入Spring框架- Spring介绍 Spring诞生: 创建Spring的目的就是用来替 ...
- JavaWeb_(Spring框架)在Struts+Hibernate框架中引入Spring框架
spring的功能:简单来说就是帮我们new对象,什么时候new对象好,什么时候销毁对象. 在MySQL中添加spring数据库,添加user表,并添加一条用户数据 使用struts + hibern ...
- OSGI与Spring结合开发web工程
简介: 作为一个新的事实上的工业标准,OSGi 已经受到了广泛的关注, 其面向服务(接口)的基本思想和动态模块部署的能力, 是企业级应用长期以来一直追求的目标.Spring 是一个著名的 轻量级 J2 ...
- 使用 IDEA 构建聚合工程并引入 Spring Boot
简介 聚合工程里可以分为: Project 项目,也可称为顶级项目.顶级工程.父工程 Module 模块,也可称为子模块.子工程 总结一下: 这两者之间是父子继承的关系,即 模块继承顶级项目,模块之间 ...
随机推荐
- Uni2D 入门 -- Skeletal Animation
转载 csdn http://blog.csdn.net/kakashi8841/article/details/17615195 Skeletal Animation Uni2D V2.0 引进了一 ...
- C# 反射赋值
tb_Projects model = new tb_Projects(); model.OwnerId = ; string FieldName = "OwnerId";//字段 ...
- rsync sersync搭建
目标服务器 192.168.100.47 源服务器 192.168.100.46 目标服务器配置 [root@node01 nodejs]# cat /etc/rsyncd.conf #日志文件 ...
- 学JS的心路历程 -数组常见处理方法
昨天我们有提到说for-of和forEach可以用来处理数组,但其实还有很多方法可以更快速及精简代码的达到你要的效果. 话不多说,我们赶紧来看吧! Array.prototype.map() 会回传一 ...
- 前往央都之行-gdufe1529
前往央都之行 Time Limit: 2000/1000ms (Java/Others) Problem Description: 刀光哥桐人和尤吉欧两人为了拯救爱丽丝,同时从卢利特村出发要尽快同时赶 ...
- 微服务之间的调用(Ribbon与Feign)
来源:https://blog.csdn.net/jrn1012/article/details/77837658 使用Eureka作为服务注册中心,在服务启动后,各个微服务会将自己注册到Eureka ...
- canu软件文献
1)背景 组装:短的reads通过overlap来组装成contig 局限性:repeat 大于overlap导致ambiguous reconstructions and fragment the ...
- 【Scheme】元循环求值
#lang scheme (require rnrs/base-6) (require rnrs/mutable-pairs-6) (define (eval exp env) (cond ((sel ...
- c#实现动态加载Dll(转)
c#实现动态加载Dll 分类: .net2009-12-28 13:54 3652人阅读 评论(1) 收藏 举报 dllc#assemblynullexceptionclass 原理如下: 1.利用反 ...
- Linux查看修改时间、时区
同步网络时间 yum install ntpntpdate time.nist.gov timedatectl set-timezone Asia/Shanghai如果上面time.nist.gov服 ...