在 Java 9 引入的 Module(模块)系统(JPMS,Java Platform Module System) 主要是为了解决传统 classpath 的痛点。下面从优势和实际价值来讲。
exports 的包,外部模块无法访问(连反射都受限)module com.example.service {
exports com.example.service.api;
}
✅ 避免:
requires java.sql;
requires com.example.util;
✅ 好处:
ClassNotFoundException模块系统在启动时就构建完整依赖图。
order-module
user-module
payment-module
每个模块职责明确,利于团队协作。
jlink --module-path ... --add-modules com.example.app --output myjre
✅ 结果:
sun.misc)被限制| 对比项 | classpath | module |
|---|---|---|
| 可见性 | 全部可见 | 仅导出可见 |
| 依赖 | 隐式 | 显式 |
| 冲突 | 易冲突 | 编译期发现 |
| 封装 | 弱 | 强 |
| 运行时大小 | 大 | 可裁剪 |
✅ 适合:
❌ 不一定需要:
Java Module 的最大优势是:让“架构”变成“编译器能检查的东西”。
如果你愿意,我可以:
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。