`
snoopy7713
  • 浏览: 1140464 次
  • 性别: Icon_minigender_2
  • 来自: 火星郊区
博客专栏
Group-logo
OSGi
浏览量:0
社区版块
存档分类
最新评论

osgi一小步–开发流程与学习方法

    博客分类:
  • OSGi
 
阅读更多

学习OSGi有一段时间了,对OSGi项目的开发流程与学习方法做个小总结,也算是自己的学习心得吧,供自己日后学习与参考。

OSGi项目开发流程

工程建立方式

基于eclipse plugin的maven工程

这种工程被eclipse原生支持,可以通过eclipse向导页创建插件工程,通过mvn命令也可以为工程加入插件的nature,但生成后的工 程有可能需要手动处理依赖关系。公司里有一个大项目就是以这种方式创建OSGi工程的,每次导入工程时,都要手动处理一下依赖关系,非常繁杂!

普通的maven project+清单文件方式

这种工程是我比较喜欢的一种,只需要创建一般的maven工程,通过mvn eclipse:eclipse生成的eclipse工程也只需要具体JavaNature即可。需要提供一个给osgi框架解析的清单文件,配置 maven-jar-plugin在打包时用给定的清单文件即可,通过手工控制bundle的依赖关系,久而久之,你会更加理解bundle的运行机制, 当然也存在一定的繁杂!

工程布局方式

最好做一下隔离,把服务接口bundle,服务实现bundle,服务消费者bundle分开,有时还需要一种bundle来承载整个系统对第三方库的依赖,暂且称为三方库依赖bundle,以下是各种bundle的解释

  • 服务接口bundle    定义系统所需要所有的接口类,供其他各bundle依赖
  • 服务实现bundle     对服务接口的实现,每种实现最好单独一个bundle,便于更新替换
  • 服务消费者bundle  服务的消费者,只应依赖于服务接口bundle,而不应触碰具体的实现bundle
  • 三方库依赖bundle   管理整个系统对第三方库的依赖,比如log4j等等,做到统一管理

部署方式

当构建好系统后,如何去部署运行呢,有以下几种方式

  • 手动install   通过osgi提供的标准命令一个个install,一个个start,非常麻烦
  • 使用auto config   通过equinox提供的bundle自动安装特定目录下的所有bundle,但仍然需要手动一个个start,也有些麻烦
  • 使用EclipseStarter方式最好   可以自己编写一个启动器,借助EclipseStarter可以更方便的启动并运行你的系统

学习方法与资料

学习方法

  • 自己实现小demo,多多看代码,多多写代码,是王道!
  • 努力研究Equinox的执行流程,下载源代码,使用eclipse远程调试

查找资料

  • 学会使用EclipseHelper功能,这个功能可以通过Help->Help Contents打开,当你不清楚一些osgi配置项,比如osgi.clean等等,你可以通过HelpContents找到答案,这些就相当于一个大的知识库,或者相当于msdn
  • 多逛逛OSGi联盟或Equinox的网站,也可以订阅一些开发邮件组,比如osgi-dev之类的

需要看的文档

  • OSGi规范 core,可以去OSGi联盟网站下载,介绍了OSGi规范的核心组成部分
  • OSGi规范 cmpn,介绍了各种标准服务的规范,比如声明式服务规范等等
分享到:
评论

相关推荐

    osgi插件化开发流程

    osgi插件化开发流程

    OSGI 实例eclipse插件开发

    首先,Eclipse是一个开放源代码的集成开发环境(IDE),它支持多种编程语言的开发,而OSGI则为Eclipse提供了一个强大的插件系统。通过OSGI,开发者可以创建独立、可重用的插件,这些插件可以互相交互并与其他Eclipse...

    OSGI进阶--OSGi开发指南

    OSGi开发文档和实践指南,描述了OSGI的开发流程

    OSGI 开发文档中文的

    OSGI(Open Services Gateway Initiative)是一种开放标准,用于创建可模块化的Java应用程序。它提供了一种灵活的框架,使得开发者可以构建、部署和管理模块化组件,这些组件被称为服务或bundle。OSGI的核心理念是将...

    osgi学习笔记(一)

    OSGi(Open Services Gateway Initiative)学习笔记(一) 在IT领域,OSGi是一种模块化系统和Java服务平台,它提供了一种动态管理软件组件的能力。本文将深入探讨OSGi的基本概念、架构以及如何使用它来构建可扩展和...

    OSGi与Spring:Spring DM开发

    ### OSGi与Spring:Spring DM开发环境配置详解 #### 一、引言 随着软件架构的不断发展,模块化和微服务化的趋势日益明显。在Java领域,OSGi(Open Service Gateway Initiative)作为一套成熟的技术标准,为实现模块...

    OSGI进阶插件开发

    OSGi(Open Services Gateway Initiative)是一种Java模块化系统,它为构建可伸缩、动态和模块化的应用程序提供了框架。在OSGi中,软件被分解为称为"bundle"的小型独立单元,每个bundle都包含自己的类路径和元数据,...

    基于osgi整合ssm框架注解开发

    SSM(Spring、SpringMVC、MyBatis)框架是Java Web开发中常见的技术栈,而OSGi(Open Service Gateway Initiative)则是一种模块化系统,主要用于解决Java应用程序的动态性、可扩展性和版本管理问题。将SSM框架与...

    osgi框架开发介绍

    OSGi(Open Services Gateway Initiative)框架是一个用于Java应用程序模块化的开放标准。它的核心特性是将应用程序分解为可独立部署、动态组合的模块,这些模块称为服务。OSGi框架的引入,旨在解决Java应用程序的...

    osgi介绍osgi介绍

    OSGi(Open Services Gateway Initiative)是一种Java模块化系统,它为开发人员提供了一种动态、模块化的运行时环境。在OSGi中,应用程序被分解为称为“bundle”的独立单元,这些bundle可以相互依赖并独立地加载、...

    OSGi开发环境建立和Hello World

    OSGi(Open Service Gateway Initiative)是一种用于Java平台的模块化规范,旨在使开发人员能够构建可管理和维护的大型应用程序。OSGi允许单个应用程序由多个模块组成,这些模块可以独立地安装、启动、停止、更新和...

    Equinox开发OSGi应用程序

    OSGi是动态模块系统的一个工业标准,支持模块化、面向服务和面向组件的应用程序开发。OSGi规范由OSGi联盟负责维护和更新,最新版本已经发展到了R4阶段。通过OSGi,开发者可以轻松地管理和控制应用程序中的各个模块...

    基于OSGi和Spring开发Web应用.doc

    "基于OSGi和Spring开发Web应用" OSGi(Open Service Gateway ...本文通过一个简单实例,介绍了如何利用 Spring-DM 开发基于 OSGi 和 Spring 架构的 Web 应用,并对 OSGi 和 Spring 的相关知识点进行了详细的解释。

    经典OSGI学习资料

    学习OSGI不仅能够帮助你理解模块化开发,还能提升你在大型项目中的代码组织和维护能力。通过阅读“OSGI介绍”文档,你可以深入了解这些概念,并通过实践来掌握OSGI的使用方法,例如创建自己的bundle,发布和消费服务...

    基于osgi构建小例子

    通过这个基于Eclipse 3.5和JDK 1.6的OSGi示例,你可以深入了解OSGi的模块化概念、服务模型以及动态管理特性,这对于理解现代Java应用的架构和开发流程至关重要。实践这个例子将有助于你成为更熟练的OSGi开发者。

    OSGi原理与最佳实践 学习笔记 一

    OSGi(Open Service Gateway Initiative)是一个基于Java语言的服务规范,旨在提供一个开放的服务平台,它...学习OSGi原理与最佳实践,不仅可以提升个人的编程和系统设计能力,也是把握现代Java开发趋势的重要一环。

    开发一个简单的 OSGi Web 应用实例

    ### 开发一个简单的 OSGi Web 应用实例 #### 一、项目概述 本教程旨在通过一个具体的示例来介绍如何使用OSGi框架开发一个简单的Web应用。这个示例应用能够计算两个数字的和或乘积,并展示了OSGi bundle的动态部署...

    osgi开发jar包

    OSGi(Open Services Gateway Initiative)是一种Java模块化系统,它允许开发者将应用程序分解为一系列可独立更新和替换的模块,称为“bundle”。在OSGi环境中,每个bundle都是一个自包含的单元,拥有自己的类加载器...

    osgi 开发文档

    综上所述,《OSGi原理与最佳实践》这本书可能会涵盖以上所有方面,为开发者提供了深入理解OSGi技术的全面指南,包括如何有效利用OSGi进行模块化开发、实现动态服务交互以及遵循最佳实践来优化项目结构和维护性。

    osgi相关文档、及学习资料

    OSGi(Open Services Gateway Initiative)是一种Java模块化系统,它为开发人员提供了一种管理和部署应用程序的方式,使得软件可以被分解成独立的组件,这些组件可以在运行时动态地安装、更新和卸载。这种模块化的...

Global site tag (gtag.js) - Google Analytics