在 Java 里,Module(模块) 是指 Java 9 引入的模块系统(Java Platform Module System,JPMS) 中的一个核心概念。它的目的是让 Java 应用和 JDK 本身在 依赖管理、封装和可见性 上更清晰、更安全。
下面从几个层面给你讲清楚。
Module(模块) 是一个有名字的代码与资源的集合,并且:
换句话说:
Module = 一组包 + 模块描述文件(module-info.java)
在 Java 9 之前:
于是 Java 9 引入了 Module System:
✅ 更好的封装
✅ 显式依赖
✅ 更小的运行时(jlink)
✅ 更安全的 API 边界
module-info.java每个模块必须有一个描述文件:
module com.example.mymodule {
requires java.base;
requires java.sql;
exports com.example.mymodule.api;
}
| 指令 | 作用 |
|---|---|
module |
声明模块名 |
requires |
依赖其他模块 |
exports |
导出包(别人才能用) |
opens |
运行时开放(反射用) |
uses |
使用服务接口 |
provides |
提供服务实现 |
src/
└── com/example/Main.java
src/
└── module-info.java
└── com/example/Main.java
Java 9 之后,JDK 被拆成模块:
java.base
java.sql
java.xml
java.logging
你可以只使用你需要的模块。
你自己写的:
module com.myapp {
requires java.base;
}
把老 jar 放模块路径,自动生成模块名。
classpath 上的代码,兼容老项目。
✅ 明确依赖
✅ 强封装(不能随便访问内部类)
✅ 避免 classpath 冲突
✅ 支持微服务 / 云原生裁剪 JRE
✅ 更清晰的架构边界
Java Module 是 Java 9 引入的一种“带依赖和封装声明的代码组织方式”,用来替代混乱的 classpath,让大型 Java 项目更安全、更清晰、更易维护。
如果你愿意,我也可以:
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。