- 1、本文档共32页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
OSGI的web开发.doc
基于 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
您可能关注的文档
- IPAD应用远程开关电脑和远程控制.doc
- Ipandrouter教材.doc
- IPSAN系统设计.doc
- IPTV互连IPMAN优化平面技术方案V1.62007522ByShenShuHua.doc
- IP数据报与ARP报文的组成.doc
- IP网络广播案例,公园IP网络广播方案.doc
- Istorage服务器安装和使用指南.doc
- IT认证手册.doc
- JAVAEE应用开发技术mavenlkj.ppt
- JAVA中的集合框架.ppt
- 大学生职业规划大赛《新闻学专业》生涯发展展示PPT.pptx
- 大学生职业规划大赛《应用统计学专业》生涯发展展示PPT.pptx
- 大学生职业规划大赛《音乐学专业》生涯发展展示PPT.pptx
- 大学生职业规划大赛《中医学专业》生涯发展展示PPT.pptx
- 大学生职业规划大赛《信息管理与信息系统专业》生涯发展展示PPT.pptx
- 大学生职业规划大赛《汽车服务工程专业》生涯发展展示PPT.pptx
- 大学生职业规划大赛《水产养殖学专业》生涯发展展示PPT.pptx
- 大学生职业规划大赛《市场营销专业》生涯发展展示PPT.pptx
- 大学生职业规划大赛《音乐表演专业》生涯发展展示PPT.pptx
- 大学生职业规划大赛《音乐学专业》生涯发展展示PPT.pptx
最近下载
- 贯彻学习二十次大会精神感想感悟.pptx VIP
- 2024年河北省继续医学教育公共必修课参考答案.pdf VIP
- 《中共中央关于进一步全面深化改革、推进中国式现代化的决定》PPT.pptx VIP
- 九年级上册道德与法治知识点速查速记模板.pdf VIP
- 以钉钉子精神学习贯彻二十届三中全会《决定》心得体会.docx VIP
- 2023年一级建造师《工程经济》考前10页纸.pdf VIP
- 2024年一级建造师《经济》教材变动.pdf VIP
- 〖CJJ28-2014〗城镇供热管网工程施工及验收规范.docx VIP
- 王德峰的哲学导论.doc
- 2023执业药师继续教育从8个临床问题学习氯吡格雷说明书参考答案.docx
文档评论(0)