Java Module(模块)是 Java 9 引入的模块化系统(Project Jigsaw) 的核心概念,主要用来对代码进行更高层次的封装、依赖管理和访问控制。它解决了传统 JAR 包在大型项目中的诸多问题。
下面从作用、解决的问题、核心机制和示例几个方面说明。
✅ 防止 API 被误用
✅ 提高系统安全性
module com.example.api {
exports com.example.api;
}
只有 com.example.api 包可以被其他模块访问。
module com.example.app {
requires com.example.api;
}
✅ 避免“类找不到”的运行时错误
✅ 提高可维护性
✅ 构建更稳定的应用
✅ 特别适合:
| 对比项 | 传统 JAR | Java Module |
|---|---|---|
| 可见性 | public 即全局 | 可精确控制 |
| 依赖 | 隐式(classpath) | 显式(module-info) |
| 封装 | 弱 | 强 |
| 运行时检查 | 少 | 强 |
| 适合大型系统 | 一般 | 非常适合 |
module-info.javamodule com.example.app {
requires java.sql;
requires com.example.api;
exports com.example.app.api;
}
| 指令 | 作用 |
|---|---|
exports |
导出包 |
requires |
声明依赖 |
requires transitive |
传递依赖 |
opens |
允许反射 |
provides … with |
服务注入 |
uses |
使用服务 |
✅ 适合:
❌ 不太适合:
Java Module 的作用是:通过强封装、显式依赖和模块化边界,让 Java 应用在大型系统、复杂依赖和云环境中更安全、更可维护、更可控。
如果你愿意,我也可以:
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。