
课程咨询: 400-996-5531 / 投诉建议: 400-111-8989
认真做教育 专心促就业
下面昆明IT培训导师跟大家说说:Java平台级模块系统 我们知道Java 9的定义功能是一套全新的模块系统。当你学习的代码库越来越大,创建复杂的时候,盘根错节的“意大利面条式代码”的几率呈指数级的增长。这时候导师就得面对两个很基础的问题:很难对代码进行封装,并且系统并没有对不同部分(也就是JAR文件)之间的依赖关系有个明确的概念。
每一个公共类都可以被类路径之下任何其它的公共类所访问到,这样就会导致无意中使用了并不想被公开访问的API。此外,昆明达内导师觉得类路径本身也存在问题:你怎么知晓所有需要的JAR都已经有了,或者是不是会有重复的项呢?模块系统把这俩个问题都给解决了。
模块化的JAR文件都包含一个额外的模块描述器。在这个模块描述器中,对其它模块的依赖是通过 “requires” 来表示的。另外,“exports” 语句控制着哪些包是可以被其它模块访问到的。所有不被导出的包默认都封装在模块的里面。如下是一个模块描述器的示例,存在于 “module-info.java” 文件中:
Java代码
module blog {
exports com.pluralsight.blog;
requires cms;
}
达内昆明培训导师要请大家注意,两个模块都包含封装的包,因为它们没有被导出(使用橙色盾牌可视化)。没有人会偶然地使用来自这些包中的类。Java平台本身也使用自己的模块系统进行了模块化。通过封装JDK的内部类,平台更安全,持续改进也更容易。
当启动一个模块化应用时,JVM会验证是否所有的模块都能使用,这基于`requires`语句——比脆弱的类路径迈进了一大步。模块允许你更好地强制结构化封装你的应用并明确依赖。你可以在这个课程中学习更多关于Java 9中模块工作的信息 。