Module System (Project Jigsaw)
การเปลี่ยนแปลงใหญ่ที่สุดของ Java 9 คือ Module System ภายใต้ Project Jigsaw ประกอบด้วย:
- Modular JDK
- Modular Java Source Code
- Modular Run-time Images
- Encapsulate Java Internal APIs
- Java Platform Module System (JPMS)
แรงจูงใจหลัก
สร้าง Modular JVM ที่รันบนอุปกรณ์ที่มีหน่วยความจำน้อย โดยโหลดเฉพาะโมดูลและ API ที่แอปพลิเคชันต้องการ
Syntax ของ Module Declaration
module Module-Name {
requires moduleName;
exports packageName;
}
Modular JAR
Modular JAR มี module descriptor เพิ่มเติม (module-info.class) ที่ระบุ:
- requires - dependencies ของโมดูลอื่น
- exports - package ใดบ้างที่อนุญาตให้โมดูลอื่นเข้าถึง
สรุป
Module System นำมาสู่การจัดการ dependency ชัดเจน encapsulation แบบเข้มงวด และ runtime images ที่เบาและเร็ว