您当前的位置:首页 > 百宝箱

模块化 Java

2024-09-30 21:07:58 作者:石家庄人才网

本篇文章给大家带来《模块化 java》,石家庄人才网对文章内容进行了深度展开说明,希望对各位有所帮助,记得收藏本站。

Java 9 引入了模块化系统,也被称为 Java 平台模块化系统(JPMS)。它的主要目标是改进 Java 应用程序的结构、依赖管理和安全性。

在模块化之前,Java 应用程序使用 JAR(Java 归档)文件来打包和分发代码。但是,JAR 文件有一些局限性:

  • JAR 文件没有明确声明其依赖关系的方式。 这可能导致运行时出现 ClassNotFoundException 错误,因为 JVM 无法找到所需的类。
  • JAR 文件对封装的支持有限。 任何公共类都可以被其他类访问,即使它们不应该被访问。

Java 模块解决了这些问题,并提供了以下好处:

  • 可靠的配置。 模块声明了它们所需的模块,并且 JVM 在编译时和运行时都会强制执行这些依赖关系。这有助于防止由于缺少依赖项而导致的错误。
  • 强大的封装。 模块只能导出特定的包,从而限制了对模块内部实现的访问。这有助于提高应用程序的安全性,因为它可以防止恶意代码访问敏感数据。
  • 改进的性能。 JVM 可以使用模块信息来优化类加载和代码生成。这可以缩短启动时间并提高运行时性能。
  • 更小的应用程序大小。 通过仅包含应用程序所需的模块,可以减小应用程序的大小。这对资源受限的设备(如嵌入式系统)尤其有利。

要创建一个模块,您需要在源代码的根目录中创建一个名为 module-info.java 的文件。该文件包含模块声明,其中包括模块名称、依赖项和导出的包。

以下是一个 module-info.java 文件的示例:

module com.example.mymodule {    requires java.logging;    exports com.example.mymodule.api;}

在这个例子中:

  • module com.example.mymodule 声明了一个名为 com.example.mymodule 的模块。
  • requires java.logging; 声明该模块依赖于 java.logging 模块。
  • exports com.example.mymodule.api; 声明该模块导出 com.example.mymodule.api 包。

一旦您创建了一个模块,就可以使用 Java 模块化工具(如 jlink)来创建自定义的运行时映像,该映像仅包含应用程序所需的模块。这可以显著减小应用程序的大小和攻击面。

有关 Java 模块化的更多信息,请参阅 Java 平台模块化系统文档:https://docs.oracle.com/javase/9/docs/api/java.base/module-summary.html

石家庄人才网小编对《模块化 java》内容分享到这里,如果有相关疑问请在本站留言。

版权声明:《模块化 Java》来自【石家庄人才网】收集整理于网络,不代表本站立场,所有图片文章版权属于原作者,如有侵略,联系删除。
https://www.ymil.cn/baibaoxiang/5495.html