模块层是OSGi框架的最基础层次,是OSGi其他部分的基础。
1、模块
定义:
一个从逻辑上封装实现类的集合,一个基于实现类子集的可选公共API,一个对外部代码依赖关系的集合。
package是Java提供的一种内建的模块化方式,但它有一些限制:http://blog.csdn.net/vking_wang/article/details/9735395
以上讨论的都是“逻辑模块化”;而对应的“物理模块化”,指的是代码如何封装和部署,例如部署为多个jar。
作用:
高内聚,一个模块专注于单个关注点;
低耦合,模块间耦合度低。
2、bundle
定义:
bundle是一个模块化的物理单元,以jar文件的形式包含代码、资源、元数据。其中jar文件的边界也作为执行时逻辑模块化的封装边界。
2.1 bundle在物理模块化中的作用
- 确定模块的成员关系;——如果一个类包含在bundle JAR文件中,那么它就是bundle的成员。灵活。
- 作为部署单元使用;
- bundle JAR文件是bundle元数据的容器;——用Jar清单文件MANIFEST.MF