1. Bundle:其实就是OSGI中的模块,通过配置jar包中的MAINIFEST.MF,控制从Bundle导出的包,没有导出的包,是不可被外部使用的。我的理解是做到了模块间的调用力度控制。有两种方式实现模块交互,一种通过导入,另一种通过Service实现。
Bundle的状态:
INSTALLED:安装完成,本地资源成功加载。
RESOLVED:依赖关系满足,这个状态意味该Bundle要么已经准备好运行,要么是被停止了。
STARTING:Bundle正在被启动,BundleActivator的start()方法已经被调用但是还没有返回。
STOPPING:Bundle正在被停止,BundleActivator的stop()方法已经被调用但是还没有返回。
ACTIVE:Bundle 被成功启动并且在运行。
UNINSTALLED:bundle被卸载并且无法进入其他状态。
2.Service:其实可以理解为spring的service,只不过这里是bundle之间的通信。
3.Service-Oriented Component Model(SOCM):面对组件模型
4.Declarative Service:声明式服务。