Java9
模块系统的必要性
- 可定制的JRE:更小的运行时镜像
- 更确定的模块 依赖关系:避免JAR HELL问题
- 与OSGI的比较
模块的定义
- 模块是一个命名的、自我描述和数据的集合
- 模块的代码被组织成多个包,每个包中java类和接口
- 模块的数据包括资源文件和其他静态信息
模块声明文件
- 模块的声明文件:mudule-info.java
- 新的关键词:module
- 模块的名称的规则:和包的命名类似
使用示例
- 新建项目和包类目录如下
其中,在mudule-info.java的内容如下
注意:描述module信息的module-info.java必须放在module文件夹的根目录下
module com.bulong.first.module {
exports com.bulong.example; // 声明暴露com.bulong.example
}
- 新建另外一个模块,进行依赖引用
在此模块进行引用代码如下:
总结
- 目前Java9的使用并不多,个人感觉很多程度借鉴了Maven、Ant等模块化思想。
- 这是目前的初体验,后续再使用在继续探索各种新特性。