1. JPMS 模块系统(Jigsaw)解决的核心问题,强封装与显式依赖
JPMS 模块系统(Jigsaw)解决的核心问题是什么?强封装与显式依赖是什么?
- JPMS 模块系统
- 强封装
- 显式依赖
JPMS 模块系统(Jigsaw)解决的核心问题:1)强封装(Encapsulation):模块明确导出哪些包(exports),未导出的包对外不可见(模块内部实现细节被封装),相比 classpath 的"全公开"更安全、可控;2)显式依赖(Explicit Dependencies):模块声明 requires 依赖(module-info),模块图明确,编译/运行时可验证依赖(避免 classpath 的隐式、混乱依赖),解决"类路径地狱"(jar 冲突、隐藏依赖)。其他:可靠配置(模块解析)、可扩展(ServiceLoader 集成)、强封装支持安全。Jigsaw 让模块化:强封装(exports 控制可见性)+ 显式依赖(requires 声明),解决 JAR 地狱与封装问题。
JPMS 用 exports 强封装(未导出包不可见)、requires 显式依赖(模块图明确),解决类路径地狱与封装问题。
module com.example.app {
requires com.example.core; // 显式依赖
exports com.example.app.api; // 导出 API 包
}