Modules
34 → Modules & SPI
Previous: 33 Testing → Next: 35 Serialization
▶️ pkg15modules/modules1JpmsConcepts.java · modules2ServiceLoaderSpi
Java Platform Module System (JPMS)
module-info.java declares:
1module com.myapp {2 requires java.sql; // depends on3 exports com.myapp.api; // public API4 opens com.myapp.internal to spring.core; // reflection5}Why modules? Strong encapsulation, smaller runtime images (jlink), explicit dependencies.
ServiceLoader (SPI)
Define interface in one module, implementations in others, discover at runtime:
1META-INF/services/com.example.Encoder · lists impl classes2ServiceLoader.load(Encoder.class)See pkg15modules/spi-demo/ for a working example.
Related → Modules.md
Related → 10 Java 9→21 Features
Next → 35 Serialization
Source named in this chapter
- modules1JpmsConceptspkg15modules/modules1JpmsConcepts.java