在 Java 中,Module(模块) 是 Java 9 引入的一种新的代码组织与封装机制,用来解决传统 “包(package)+ classpath” 带来的可维护性、安全性和依赖混乱问题。
在 Java 9 之前:
Java Module 的目标:
模块(Module) 是一组相关的包和资源的集合,并通过一个描述文件来声明:
模块描述文件是:
module-info.java
module com.example.demo {
requires java.sql;
requires com.example.util;
exports com.example.demo.api;
opens com.example.demo.entity;
}
| 关键字 | 作用 |
|---|---|
module |
定义模块名 |
requires |
声明依赖的其他模块 |
exports |
对外暴露的包(只能访问 public 类型) |
opens |
允许反射访问 |
provides ... with |
服务提供者机制 |
uses |
服务消费 |
| 对比项 | Package | Module |
|---|---|---|
| 组织单位 | 类 | 包 + 资源 |
| 访问控制 | 仅 public / private | 模块级控制 |
| 依赖管理 | 隐式 | 显式 |
| 反射 | 默认允许 | 默认禁止 |
java.base)同一程序不能混用 module path 和 classpath 的强约束
myapp/
├── module-info.java
└── com/example/demo/Main.java
javac -d out myapp/**/*.java
java --module-path out --module com.example.demo/com.example.demo.Main
✅ 适合:
❌ 不一定需要:
如果你愿意,我也可以:
你想从哪方面继续了解?
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。