Java9模块化
将不同业务分成不同的模块,可以使java更加轻量级运行
模块化的使用:
首先先创建两个模块:
创建好后,分别在两个模块目录的src下创建module-info文件,注意,如果没有此文件,将模块中的jdk信息变为9
创建好后使用下面两个关键字配置此文件:
示例:
配置好后,按下alt+enter自动生成模块依赖。这样子,就可以在java02模块下访问java01中,指定包的内容了
模块服务使用
可以在其他模块中,使用 provides
和with
两个关键字,指定接口只能使用某个实现类
示例:
在java01中新建一个包,一个接口,两个实现类
在java01module-info中配置文件
provides+接口+with+实现类(限制其他模块使用接口的实现类)
module Java01 {
exports Moudle.ch01;
exports Moudle.ch02;
provides Pet with Cat;
}
}
uses:声明服务接口(使用模块中的某个接口)
ServiceLoader :一种加载服务实现的工具
ServiceLoader.load(服务的.class文件);
在java02中使用Pet
module Java02 {
requires Java01;
uses Pet;
在java02模块中使用ServiceLoader
使用Pet接口