基于OSGi框架的Eclipse开发环境搭建

Maven+Apache Karaf+Felix\Equion+Jersey+Netty

1、概念

Apache Karaf: Karaf是2001年Apache旗下的一个开源项目.Karaf同时也是一个基于OSGi的运行环境,Karaf提供了一个轻量级的OSGi容器。可以用于部署各种组件,应用程序.Karaf提供了很多特性用于帮助开发者和用户更加灵活的部署应用,例如:热部署,动态配置,几种日志处理系统,本地系统集 成,可编程扩展控制台,ssh远程访问,内置安装认证机制等等.同时Karaf作为一款成熟而且优秀的OSGi运行环境以及容器已经被诸多Apache项目作为基础容器,例如:Apache Geronimo, ApacheServiceMix, Fuse ESB,由此可见Karaf在性能,功能和稳定性上都是个不错的选择

Felix: 主流的一种OSGi框架(非常成熟 提供的服务是最全的 还提供了一些非标准的功能)

Equion:主流的一种OSGi框架(全面的框架 它功能的分类稍显混乱,文档和Sample也组织的不是很好。 和Eclipse结合紧密)

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

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

OSGi给出了一套Java模块化规范,这套规范给出了OSGi框架的定义,而具体的OSGi平台,如Felix和Equinox则分别是Apache和Eclipse开源社区给出的标准规范的实现

Jersey:Jersey RESTful 框架是开源的RESTful框架, 实现了JAX-RS (JSR 311 & JSR 339) 规范。它扩展了JAX-RS 参考实现, 提供了更多的特性和工具, 可以进一步地简化 RESTful service 和 client 开发。尽管相对年轻,它已经是一个产品级的 RESTful service 和 client 框架。与Struts类似,它同样可以和hibernate,spring框架整合。  

REST 全称是 Representational State Transfer(表述性状态转移),它是 Roy Fielding 博士在 2000 年写的一篇关于软件架构风格的论文,此文一出,威震四方!国内外许多知名互联网公司纷纷开始采用这种轻量级的 Web 服务,大家习惯将其称为 RESTful Web Services,或简称 REST 服务。   所以Jersey是REST框架。

Netty:  Netty是由JBOSS提供的一个java开源框架。Netty提供异步的、事件驱动的网络应用程序框架和工具,用以快速开发高性能、高可靠性的网络服务器和客户端程序。

扫描二维码关注公众号,回复: 3093244 查看本文章

也就是说,Netty 是一个基于NIO的客户、服务器端编程框架,使用Netty 可以确保你快速和简单的开发出一个网络应用,例如实现了某种协议的客户、服务端应用。Netty相当于简化和流线化了网络应用的编程开发过程,例如:基于TCP和UDP的socket服务开发。

“快速”和“简单”并不用产生维护性或性能上的问题。Netty 是一个吸收了多种协议(包括FTP、SMTP、HTTP等各种二进制文本协议)的实现经验,并经过相当精心设计的项目。最终,Netty 成功的找到了一种方式,在保证易于开发的同时还保证了其应用的性能,稳定性和伸缩性。  另外Netty作者也写过另一个类似的框架Mina,同样也十分优秀,性能很高。

了解上面这些概念之后,下面开始在Eclipse中搭建一套开发环境。

第一步、安装Eclipse(最新版本即可);

第二部、下载Apache karaf 安装包,解压即可。

第三部、下载Maven,解压并配置环境变量,修改setting文件, 中央仓库建议使用阿里云的镜像,否则下载依赖包很慢。(说的这里,感慨阿里做的真的是优秀)。

第四部、在eclipse首选项Maven中配置maven路径,配置setting文件(可在该文件指定本地仓库路径); 

第五步、在eclipse首选项中Java中配置Installed JREs ,add 选择jdk安装路径即可。

第六步、

未完待续,工作紧张,

在说一下,ban工具可将jar文件打包成bundle.(Eclipse中可以按照ban工具插件)

猜你喜欢

转载自blog.csdn.net/m0_37657585/article/details/82532913