到了华为,才开始接触到OSGi,感觉用这个框剪来写后台服务是非常好的,可以动态部署服务。也开始学习OSGi,OSGi是OSGi联盟提出的开放的服务规范,eclipse3.0以后插件体系就是基于OSGi来实现的。OSGi好处就是模块划分力度可以更小,可以动态的部署服务
Eclipse平台对OSGi开发提供了较完善的支持,OSGi带来了规范划分,实现了高内聚低耦合。在开发应用程序的时候要精心划分,划分的原则就是尽量保持各个模块的独立性。模块之间的耦合性降到最小,使各个bundle之间通过OSGi框架注册的服务来通信。可以避免传统之间模块之间的包和类的引用。(本人也是整理别人的博客)
学习笔记:
1:对以别的工程包的引用,可以不再是包依赖,而是通过一个bundle导出一个接口,别的包引用
2:包org.osgi.util.tracker是OSGi框架提供的监视Bundle提供的服务是否可用的机制
3:在run的设定中可以设置bundle的启动级别,
4:命令下启动bundle,到jar包的目录下面。然后运行java –jar osgitest.jar –console
5:Bundle以及Bundle提供的服务可以随时消失或者重新加入,而其它使用服务的Bundle可以感知服务是否可用,并动态地改变自己的行为。