OSGI-Bundle:概念和入门

OSGI(Open Service gateway initactive)是java动态化模块系统的一系列规范。即一个系统应用上可以有很多可插拔的小应用,整个应用能运行和协调,小应用之间也可以相互交互完成业务需求。

Bundle: bundle 是以 jar 包形式存在的一个模块化物理单元,里面包含了代码,资源文件和元数据(metadata),并且jar包的物理边界也同时是运行时逻辑模块的封装边界。

在这里插入图片描述

实际工作中可以理解为bundle是一个小应用,一般是业务扩展方维护这个应用,里面有各种自身的业务逻辑和对平台应用的扩展。


OSGi框架一般如下:
在这里插入图片描述

Module:模块层主要涉及打包及共享的代码;
Lifecycle :生命周期层主要涉及Bundle的运行时生命周期管理;
Service:服务层主要涉及模块之间的交互和通信。


简单的来说就是平台应用和bundle应用,如何将平台应用和bundle应用整个的运行起来,其中最关键的就是对bundles的控制,包括bundle安装、开启、关闭、更新和卸载。而在实际过程中需要考虑的问题有:

  1. 某个类是复用平台应用的,还是bundle自身的定义的
  2. bundle加载的时机:有些时候bundle依赖于平台应用的某些bean才能启动;有些时候平台的某个bean也需要依赖bundle中的某个bean才能完成初始化
  3. bundle之间如何控制隔离和访问

猜你喜欢

转载自blog.csdn.net/qq_26437925/article/details/131487042