The Java 9 Module System Beyond The Basics
summary
Covers concrete module techniques using module-info.java: demonstrates requires transitive to create aggregator or compatibility modules, requires static to compile against optional dependencies, and the module-aware ServiceLoader pattern to decouple API and implementations (example application splits into surprise, calendar, factories, advent modules and switches to service loading successfully). Shows qualified opens/exports for selective sharing and deep reflection, and uses jlink to build slim runtime images (java.base‑only image drops to about 40 MB) and packaged app launchers.
AI-written summary · about
chapters (15)
- 0:00Introduction and speaker background
- 1:33Java module system basics recap
- 9:00Beyond the basics introduction
- 10:26Transitive dependencies explained
- 19:15Q&A on transitive dependencies
- 20:58Optional dependencies overview
- 26:38Q&A on optional dependencies
- 26:58Java services introduction
- 34:11Q&A on services and qualifiers
- 36:02Qualified exports and open modules
- 41:33Q&A on exports and reflection
- 42:00Benefits of modularization
- 44:13Creating runtime images with jlink
- 49:05jlink summary and use cases
- 50:10Q&A on jlink and speaker bio








