- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
OSGI的eb开发
基于 OSGi 和 Spring 开发 Web 应用
简介: 作为一个新的事实上的工业标准,OSGi 已经受到了广泛的关注, 其面向服务(接口)的基本思想和动态模块部署的能力, 是企业级应用长期以来一直追求的目标。Spring 是一个著名的 轻量级 J2EE 开发框架,其特点是面向接口编程和非侵入式的依赖注入。将 OSGi 和 Spring 结合能充分发挥二者各自的特长,更好地满足企业级应用开发的需求。Spring 开发组织在 2008 年发布了将 OSGi 和 Spring 结合的第一个版本:Spring-DM。本文通过一个简单实例,介绍如何利用 Spring-DM 开发基于 OSGi 和 Spring 架构的 Web 应用,同时探讨其中用到的关键技术及其基本思想。
开发一个简单的 OSGi Web 应用实例
一个简单的 Web 应用
我们写一个简单的 Web 应用 compute.html :计算两个数字的和或乘积。如下图所示:
图 1. 一个简单例子
为了体现 OSGi bundle 的动态部署能力,我们写两个 service bundle,其中一个计算两个数字的和(称为 add bundle),另外一个计算两个数字的积(称为 multiply bundle)。 当我们点击“Compute”按钮的时候,如果此时 add bundle 被部署,则页面将返回两个数字的和,否则如果此时 multiply bundle 被部署,则页面将返回两个数字的积。
开发环境准备
下载 Eclipse 3.4
获取所有 OSGi, Equinox 和 Spring 的插件, 如下图所示:
图 2. 相关插件列表
打开 Eclipse, 设置 target platform 为上述插件集合
基本模块设计
该应用主要包含两个层次: 服务层和 Web 层。Web 层基于 Spring-MVC 实现,包含处理 Web访问相关的 bundle(本例中只有一个)。服务层包含处理数字计算的 bundle,本例中包含一个声明服务接口的 compute interface bundle 和两个实现该服务接口的 bundle :add bundle 和 multiply bundle。基本模块结构如下图所示:
图 3. 基本框架
模块程序实现
Step 1 :实现 Service Layer
服务层的三个 OSGi bundle 实现完毕之后如下图所示 :
图 4. 服务层
服务层.bmp
其中 pute 是声明服务接口的 pute.add和pute.multiply 是实现了服务接口的两个 bundle。
pute
声明一个 Compute 接口,其中包含一个接口方法 computeNums(),如下图所示 :
图 5. 服务层接口 bundle
pute.add
bundle pute.add 的基本程序结构如下图所示:
图 6. 接口实现 bundle :add
在该 add bundle 中,添加一个 Add 类,实现 Compute 接口,如下图所示:
图 7. 接口实现代码 :Add 类
注意到我们在 META-INF 下建了一个 spring 目录,并且添加了一个 computeAdd-context.xml 文件。系统启动时,Spring 将利用该 xml 文件创建一个 bean 实例,并把该 bean 输出为一个 OSGi service,如下图所示 :
图 8. Spring 声明文件 :computeAdd-context.xml
该xml文件中,osgi : service是 Spring-DM 输出 OSGi service 的标记,其中的 interface属性标明了该 service 实现的服务接口。
pute.multiply
按照与 add bundle 同样的方法,实现 multiply bundle,如下图所示:
图 9. 接口实现代码:Multiply 类
接口实现代码-Multiply类.bmp
类似的,添加一个 computeMultiply-context.xml 输出 OSGi service,如下图所示 :
图 10. Spring 声明文件:computeMultiply-context.xml
Step 2 :实现 Web Layer
Web 层只包含一个 bundle:com.zxn.example.web,采用 Spring-MVC 和 OSGi 构建,基本程序结构如下图所示:
图 11. Web Layer 程序结构
ComputeControler.java
该JAVA类实现了 org.springframework.web.serv
您可能关注的文档
- Modul 7 Summer in Los Angeles 教案.doc
- modul 7阅读理解.doc
- Modul 8 Different habits 学案.doc
- Modul 8 Unit 1 word power_ 贾梅萍.doc
- Modul 8 Unit 2学案.doc
- Modul 9 People and places 新外研版.doc
- Modul 9 Cartoon stories.doc
- Modul 9 Cartoon stories测试题.doc
- Modul 9 Unit 1 Phrases.doc
- Modul2_What_can_you_do精讲精练.doc
- Oracl RM 风险管理系统白皮书.doc
- Our fiends electric 英汉.doc
- Outlie of English Literature3.doc
- Outlie of Survey.doc
- Oxfor English 3A M2U1 My friends教学设计.doc
- Ozymadias所有中英文分析.doc
- o地理说课Word 文档.doc
- P12-Cse Study 10-Dec-Questions.doc
- P12-Cse Study 10-Dec-Solutions.doc
- Paralelism and Translation in Business English 论文 商务英语中的平行结构与翻译.doc
最近下载
- 轴承配对形式对高速内圆磨削主轴性能影响.pdf VIP
- 建筑工程图集 07SJ504-1:隔断隔断墙(一).pdf VIP
- 数字孪生应用技术员职业技能理论考试题库资料大全(含答案).pdf VIP
- 《黄成义老师中医概论》.pdf VIP
- DB3502∕Z 5058-2020 厦门市城市轨道交通工程预算定额(土建工程).docx
- 申龙扶梯3000安装调试说明.pdf VIP
- 一种用于沉积金刚石的MPCVD装置.pdf VIP
- 总也倒不了的老屋剧本.docx VIP
- 2024年黑龙江鹤岗市“黑龙江人才周”企事业单位人才引进365人【综合基础知识500题】高频考点模拟试题及参考答案解析.docx
- 一种桥梁钢索防火保护装置.pdf VIP
文档评论(0)