Java 模块(Project Jigsaw / Java Module System,自 Java 9 引入)之所以重要,核心原因在于它解决了大型 Java 应用长期存在的“依赖混乱、封装薄弱、体积臃肿、安全问题”。下面从几个关键角度说明其重要性:
在模块出现前,Java 的 public 意味着“对所有人都可见”,即使某些类只是内部实现细节,外部也能直接调用。
模块系统允许:
exports)module com.example.service {
exports com.example.service.api;
// com.example.service.internal 不导出
}
✅ 防止误用内部 API
✅ 提高代码可维护性
✅ 更容易演进和重构
以前依赖靠 classpath,问题是:
模块使用 requires 显式声明依赖:
module com.example.app {
requires com.example.service;
}
✅ 编译期就能发现缺失依赖
✅ 避免“jar hell”
✅ 依赖关系清晰可读
Java 9 前,JRE 是“全家桶”,即使你只用 java.base 也要带整个 JDK。
模块系统后:
jlink 构建最小运行时jlink --module-path $JAVA_HOME/jmods \
--add-modules com.example.app \
--output myruntime
✅ 容器镜像更小
✅ 启动更快
✅ 特别适合云原生 / 微服务
sun.*)对企业级系统尤其重要。
没有模块时:
有模块后:
需要说明:
但:
Java 模块的重要性在于:它让 Java 从“能跑就行”走向“可治理、可演进、可裁剪的工程化系统”。
如果你愿意,我也可以:
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。