Modularisierung mit Java 9
eBook - ePub
Verfügbar bis 21 Sep |Weitere Informationen

Modularisierung mit Java 9

Grundlagen und Techniken für langlebige Softwarearchitekturen

  1. 330 Seiten
  2. German
  3. ePUB (handyfreundlich)
  4. Über iOS und Android verfügbar
eBook - ePub
Verfügbar bis 21 Sep |Weitere Informationen

Modularisierung mit Java 9

Grundlagen und Techniken für langlebige Softwarearchitekturen

Angaben zum Buch
Buchvorschau
Inhaltsverzeichnis
Quellenangaben

Über dieses Buch

Dieses Buch liefert Ihnen eine fundierte und kompakte Einführung in das Thema Modularisierung von Software und zeigt, wie Sie modularisierte Anwendungen auf Basis des Java-Modulsystems erstellen können.Im ersten Teil des Buches geht es um die theoretischen Grundlagen: Was ist überhaupt ein Modul? Wie lässt sich ein Softwaresystem sinnvoll modularisieren? Was ist beim Entwurf von Modulen und dem Zusammenspiel der Module untereinander zu beachten? Warum ist Modularisierung eigentlich so wichtig? Hier lernen Sie die Prinzipien, die auch außerhalb der Java-Welt ihre Verwendung finden, und werden in das Denken in Modulen und Schnittstellen eingeführt.Der zweite Teil stellt das mit Java 9 eingeführte Java-Modulsystem in seiner ganzen Bandbreite vor und erläutert dieses anhand vieler Beispiele. Dabei geht es u.a. um: - Arten von Java-Modulen- Services- Modulschichten- Das modularisierte JDK- Erstellung eigener JREs- Testen und Patchen von Modulen- Migration von AnwendungenDarüber hinaus wird die Verwendung der gängigen IDEs (Eclipse, NetBeans, IntelliJ IDEA) und Build-Tools (Ant, Maven, Gradle) mit Java-Modulen behandelt.Die Betrachtung weiterer Modularisierungsansätze – Microservices und Container – schließen das Buch ab. Anhand von Beispielen erfahren Sie, wie sich diese Ansätze mit Java-Modulen verbinden lassen.

Häufig gestellte Fragen

Gehe einfach zum Kontobereich in den Einstellungen und klicke auf „Abo kündigen“ – ganz einfach. Nachdem du gekündigt hast, bleibt deine Mitgliedschaft für den verbleibenden Abozeitraum, den du bereits bezahlt hast, aktiv. Mehr Informationen hier.
Derzeit stehen all unsere auf Mobilgeräte reagierenden ePub-Bücher zum Download über die App zur Verfügung. Die meisten unserer PDFs stehen ebenfalls zum Download bereit; wir arbeiten daran, auch die übrigen PDFs zum Download anzubieten, bei denen dies aktuell noch nicht möglich ist. Weitere Informationen hier.
Mit beiden Aboplänen erhältst du vollen Zugang zur Bibliothek und allen Funktionen von Perlego. Die einzigen Unterschiede bestehen im Preis und dem Abozeitraum: Mit dem Jahresabo sparst du auf 12 Monate gerechnet im Vergleich zum Monatsabo rund 30 %.
Wir sind ein Online-Abodienst für Lehrbücher, bei dem du für weniger als den Preis eines einzelnen Buches pro Monat Zugang zu einer ganzen Online-Bibliothek erhältst. Mit über 1 Million Büchern zu über 1.000 verschiedenen Themen haben wir bestimmt alles, was du brauchst! Weitere Informationen hier.
Achte auf das Symbol zum Vorlesen in deinem nächsten Buch, um zu sehen, ob du es dir auch anhören kannst. Bei diesem Tool wird dir Text laut vorgelesen, wobei der Text beim Vorlesen auch grafisch hervorgehoben wird. Du kannst das Vorlesen jederzeit anhalten, beschleunigen und verlangsamen. Weitere Informationen hier.
Ja, du hast Zugang zu Modularisierung mit Java 9 von Guido Oelmann im PDF- und/oder ePub-Format sowie zu anderen beliebten Büchern aus Informatik & Programmierung in Java. Aus unserem Katalog stehen dir über 1 Million Bücher zur Verfügung.

Information

Jahr
2018
ISBN
9783960884118

Teil II

Module in der Praxis

3Das Java-Modulsystem

Dieses Kapitel stellt das Java-Modulsystem und das modularisierte JDK vor und zeigt, wie auf Basis dessen modularisierte Anwendungen und benutzerdefinierte JDK Run-Time Images gebaut werden können.

3.1Das Modul

In Teil I des Buches wurde bereits detailliert dargestellt, was ein Modul ist. Zusammengefasst kann gesagt werden, dass ein Modul eine im Idealfall von anderen Modulen unabhängige verteilbare Einheit ist, bei der ein- und ausgehende Zugriffe ausschließlich über eine Schnittstelle erfolgen und die Implementierungsdetails des Moduls nach außen verborgen bleiben. Abbildung 3–1 zeigt den grundsätzlichen Aufbau.
image
Abb. 3–1 Grundsätzlicher Aufbau eines Moduls
Ein Nutzer des Moduls kennt nur die Schnittstelle und die mit dieser zur Verfügung gestellten Methoden. Alle anderen Methoden und Ressourcen des Moduls bleiben im Verborgenen und sind von außen nicht zugreifbar. Dadurch reduziert sich die Komplexität der Implementierung für den Nutzer auf die Komplexität der Schnittstelle.
Bezogen auf die Java-Welt bedeutet dies, dass das Sichtbarkeitsprinzip der Objektorientierung (public/private) auf ganze Bibliotheken übertragen wird. Die Implementierung eines Moduls kann ohne Auswirkungen nach außen verändert werden und ein Modul kann unabhängig getestet und gewartet werden. Abbildung 3–2 verdeutlicht die Verortung von Modulen im Java-Kontext. Eine Java-Anwendung besteht aus einer Menge von Typen, die innerhalb von Paketen strukturiert sind. Diese Pakete wiederum werden in Module verpackt, die zu einzelnen JARs kompiliert werden. Die Summe der Module ergibt schließlich die Anwendung oder den Service.
image
Abb. 3–2 Aufbau einer modularisierten Java-Anwendung
Struktur eines Java-Moduls
Mit einer Java-Version ab 9 lassen sich Module bestehend aus einem oder mehreren Paketen bauen, die Sichtbarkeiten und Abhängigkeiten steuern. Module stellen dabei einen Teil ihrer Pakete über die Modul-Schnittstelle nach außen zur Verfügung und deklarieren ihre Abhängigkeiten zu anderen Modulen. Zur Kompilierungszeit, wie auch zur Laufzeit, wird sichergestellt, dass keine Zugriffe an der Schnittstelle vorbei auf die Module erfolgen.
Den grundsätzlichen Aufbau eines Java-Moduls zeigt Abbildung 3–3.
Ein Java-Modul besteht aus seinem Modulnamen, einer Schnittstelle und der eigentlichen Implementierung. Mit der Schnittstelle können drei primäre Dinge deklariert werden:
  • exports: Hiermit werden die nach außen zur Verfügung gestellten Pakete deklariert.
exports <Paket>
exports <Paket> to <Modul1>,<Modul2>, ...
  • requires: Gibt an, welche Module importiert werden sollen und stellt damit die Modulabhängigkeiten dar. Das Schlüsselwort static wird verwendet, wenn die Abhängigkeit zur Laufzeit optional ist, und transitive für transitive Abhängigkeiten.
image
Abb. 3–3 Aufbau eines Java Moduls
requires <Modulname>
requires transitive <Modulname>
requires static <Modulname>
requires transitive static <Modulname>
  • uses/provides: Hier werden die Dienste (Services) aufgelistet, die ein Modul zur Laufzeit zur Verfügung stellt oder selbst benötigt.
uses <Service-Interface> provides <Service-Interface>
with <Service-Impl1>,<Service-Impl2>, ...
  • opens: Pakete werden nach außen für den Reflection-Zugriff freigegeben.
opens <Paket>
opens <Paket> to <Modul1>,<Modul2>, ...
Die Schnittstelle wird in der Moduldefinitionsdatei (Moduldeskriptor, engl. Module Descriptor) module-info.java deklariert, die der Java-Compiler zur Klasse module-info.class übersetzt und...

Inhaltsverzeichnis

  1. Cover
  2. Titel
  3. Impressum
  4. Vorwort
  5. Inhaltsverzeichnis
  6. I Einführung und Grundlagen
  7. II Module in der Praxis
  8. Literaturverzeichnis
  9. Index