Prise en charge des modules Java
Nous pourrons utiliser JPMS (Java Platform Module System). Nous aurons des descripteurs de module pour tous les modules Spring. Les modules existent depuis le JDK 9. Il s’agit d’un nouveau niveau d’abstraction au-dessus des packages. Théoriquement, nous avons une nouvelle abstraction package of Java Packages qui permet de rendre le code encore plus réutilisable. JPMS
L’adoption des modules a été différée principalement à cause des packages Maven et de Spring. Les évolutions ont été apportées à Maven (et Gradle), Spring devait donc s’inscrire dans le mouvement. Cela sera chose faite.
En effet, par défaut, nous ne pouvons pas utiliser la réflexion sur les classes que nous importons d’un autre module, bien que Spring et JUnit utilisent la réflexion massivement.
Avec la modularisation, nous avons à la fois une dépendance à l’exécution et à la compilation. Or Spring nous abstrait des dépendances à la compilation avec le système de discovery et d’auto-configuration, ce qui est une tout autre approche.
Les modules permettent de masquer des choses, de cultiver le secret, tandis que Spring est là pour exposer et réutiliser. Java évolue également souvent sans tenir compte des personnes, des outils, de qui les utilisent, ce qui empêche ou contre certaines utilisations, alors que Spring intègre...