【OSGI快速入门】理解了这个起码减少2周的看书时间

一、什么是OSGI

OSGi(Open Service Gateway Initiative)技术是Java动态化模块化系统的一系列规范。OSGi一方面指维护OSGi规范的OSGI官方联盟,另一方面指的是该组织维护的基于Java语言的服务(业务)规范。简单来说,OSGi可以认为是Java平台的模块层。

OSGi服务平台向Java提供服务,这些服务使Java成为软件集成和软件开发的首选环境。Java提供在多个平台支持产品的可移植性。OSGi技术提供允许应用程序使用精炼、可重用和可协作的组件构建的标准化原语,这些组件能够组装进一个应用和部署中。

上面只是简单的从百度C了一些介绍,只需要知道是一个新的框架就可以了,比以往用的框架都好用(个人觉得)。而且目前很多大公司都在用,小型的用的少,毕竟这个的成本高,入门门槛有点那啥,第一次有点懵逼。

二、开发前准备

开发工具:Eclipse + 开发环境(搞开发的就不用说了吧) + felix(我用的是5.4.0)

开发思维:OSGI是将传统的各个模块进行了更细致化的分离

felix:运行OSGI项目目前所用的容器(支持热插拔,好爽~~~)

Maven项目:使用过Maven项目吧,知道咋回事就行

三、构架一个OSGI框架的项目

3.1 先启动felix

cmd >>进入felix所在文件 >>java -jar bin/felix.jar 好啦,目前已成功启动felix,第一步搞定。

3.2 新建项目

新建一个Maven Project >> 选择QuickStart的方式就可以了,起名为:email-parnent

点击刚才新建的Maven项目,新建4个Maven Module(一个一个建),名字分别为:email-api、email-client、email139、email163

到这里,已经建好了1个Maven项目,4ge Module,这4个Module是email-parnent的子项目。

继续走吧,如果上面已经搞定了。

配置email-parnent项目的pom文件

a、在<Properties>标签中加入下面配置(执行我们的jdk版本)

<maven.compiler.source>1.7</maven.compiler.source>

<maven.compiler.target>1.7</maven.compiler.target>

b、加入一个依赖

<dependency><groupId>org.osgi</groupId><artifactId>org.osgi.core</artifactId>

<version>6.0.0</version></dependency>

c、继续配置

3.3 email-api(放接口的)

建了一个包路径:org.email.api

建一个接口:IEmailService

public void sendEmail(String dest,String title,String content);

下面,继续配置这个项目:

注意,下面这段文字 在所有的实现项目、client中都要用到;

<groupId>FirstOsgi</groupId>

<artifactId>email-api</artifactId>

<version>0.0.1-SNAPSHOT</version>

好啦,我们的api搞定啦

3.4 email-139(email163同理、email-client配置、编码原理一样)

下面就直接贴图了

四、打包运行吧

直接编译父项目,email-parnent,生成了4个jar包,将这4个jar包 拷贝到 felix目录/bundle下,好啦,编码、包都已准备完成,下面直接用命令行部署吧。

输入 lb :查看当前运行的包及id

stop 0 :停止根目录,(felix容器停止了)

重新启动即可:java -jar bin/felix.jar,会自动将bundle目录下的jar包进行编译,至此,我们的OSGI项目就OK啦。

小结:第一次写博客,写的不是很详细,会越来越好的。

时间: 2024-11-09 09:24:10

【OSGI快速入门】理解了这个起码减少2周的看书时间的相关文章

SpringMVC:学习笔记(1)——理解MVC及快速入门

SprigMVC-理解MVC及快速入门 说明: 传统MVC-->JSPModel2-->Front Controller + Application Controller + Page Controller + Context 三种模式是JavaWeb设计模式的逐渐适配和演进.本文分别讲述了这三种模式,作为了解即可.SpringMVC正是采用了第三种设计模式. MVC 说明 MVC是Xerox PARC在20世纪80年代为编程语言SmallTalk发明的一种软件设计模式. MVC是一种设计模式

CTK框架——CTK Plugin Framework快速入门

CTK框架--CTK Plugin Framework快速入门 一.CTK Plugin Framework简介 1.CTK Plugin Framework简介 CTK Plugin Framework基于Qt Plugin System和Qt Service Framework实现,并且增加了以下特性来扩展:A.插件元数据(由MANIFEST.MF文件提供):B.一个定义良好的插件生命周期和上下文:C.综合服务发现和注册:在Qt Plugin System中,插件的元数据由JSON文件提供.

grunt快速入门

快速入门 Grunt和 Grunt 插件是通过 npm 安装并管理的,npm是 Node.js 的包管理器. Grunt 0.4.x 必须配合Node.js >= 0.8.0版本使用.:奇数版本号的 Node.js 被认为是不稳定的开发版. 在安装 Grunt 前,请确保当前环境中所安装的 npm 已经是最新版本,执行 npm update -g npm 指令进行升级(在某些系统中可能需要 sudo 指令). 如果你已经安装了 Grunt,现在需要参考一些文档手册,那就请看一看 Gruntfil

nodejs快速入门

目录: 编写第一个Node.js程序: 异步式I/O和事件循环: 模块和包: 调试. 1. 编写第一个Node.js程序: Node.js 具有深厚的开源血统,它诞生于托管了许多优秀开源项目的网站—— github.和大多数开源软件一样,它由一个黑客发起,然后吸引了一小拨爱好者参与贡献代码.一开始它默默无闻,靠口口相传扩散,直到某一天被一个黑客媒体曝光,进入业界视野,随后便有一些有远见的公司提供商业支持,使其逐步发展壮大. 用 Node.js 编程是一件令人愉快的事情,因为你将开始用黑客的思维和

Redis快速入门及实现

redis的概念 (1)Redis的优点 以下是Redis的一些优点. 异常快 - Redis非常快,每秒可执行大约110000次的设置(SET)操作,每秒大约可执行81000次的读取/获取(GET)操作. 支持丰富的数据类型 - Redis支持开发人员常用的大多数数据类型,例如列表,集合,排序集和散列等等.这使得Redis很容易被用来解决各种问题,因为我们知道哪些问题可以更好使用地哪些数据类型来处理解决. 操作具有原子性 - 所有Redis操作都是原子操作,这确保如果两个客户端并发访问,Red

快速入门系列--MVC--01概述

虽然使用MVC已经不少年,相关技术的学习进行了多次,但是很多技术思路的理解其实都不够深入.其实就在MVC框架中有很多设计模式和设计思路的体现,例如DependencyResolver类就包含我们常见的DI依赖注入概念和注册表模式(GetService)等内容,ExceptionFilter等过滤器就体现AOP的概念,整个MVC内置了一个IOC容器,基本上所有的框架类的对象都是通过这种方式来创建的.此外,一直觉得很j2ee的spring很棒,其实如果大家很熟悉EHAB(微软企业开发库)的话,就会发

【转】Flask快速入门

迫不及待要开始了吗?本页提供了一个很好的 Flask 介绍,并假定你已经安装好了 Flask.如果没有,请跳转到 安装 章节. 一个最小的应用 一个最小的 Flask 应用看起来会是这样: from flask import Flask app = Flask(__name__) @app.route('/') def hello_world(): return 'Hello World!' if __name__ == '__main__': app.run() 把它保存为 hello.py 

Chapter 0.SymmetricDS快速入门指南( Quick Start Guide)

本文档是SymmetricDS3.6.14文档的第一章节Quick Start Guide文档的翻译,的目的是帮助读者快速搭建一个SymmetricDS集群并普及一些基本概念术语. 本文档描述了如何在两个SymmetricDS节点之间同步两个相同schema的数据库.下面的例子构建了一个分销业务模型,有一个中央数据库(我们叫它root或者corp节点)和多个零售商店的数据库(我们叫它client或者store节点).对于本教程,我们将只有一个store(商店)节点,如下图.如果你愿意,可以再教程

C#forUnity快速入门(连载15)_C#委托与事件

C# for Unity编程语言快速入门教程(连载15)_C#委托与事件 C#的委托(delegate)与事件(event)  其实不是一个容易理解的技术,而且很多C#书籍作者还经常把它与"观察者设计模式"(Observer模式)放在一起进行讨论(注:因为委托与事件是"Observer"设计模式的一种很好的实现方式),其实这就进一步增加了对于C#初学者的学习难度. 所以笔者打破常规,先从讲故事的方式,先来介绍"委托". 案例故事:"老板