- Overview
- JAVA-A
- JAVA-A1 | Fundamentals
- JAVA-A2 | Programming
- JAVA-A3 | Common Packages
- JAVA-A4 | Documentation
- JAVA-A5 | Administration
- JAVA-AX | External Libraries
- JAVA-B
- JAVA-B1 | Object Orientation
- JAVA-B2 | Collections Framework
- JAVA-B3 | Reflection
- JAVA-B4 | Parallel Programming
- JAVA-B5 | Common Data Formats
- JAVA-BX | Pattern & Strategien
- JAVA-C
- JAVA-C1 | Funktionale Programmierung
- JAVA-C2 | Collection Framework
- JAVA-C3 | Networking
- JAVA-C4 | Webservices
- JAVA-C5 | JDBC Databases
- JAVA-CX | Client/Server Tools
- JAVA-D
- JAVA-D1
- JAVA-D2
- JAVA-E
- JAVA-E1 | Java/Jakarta EE
- JAVA-E2 | Enterprise Edition
- ExampleData
- JAVA | Prinzipien und Konventionen
- JAVA How-To
- JAVA Sprachreferenz
- FootNotes
Java
Overview
Java Techlogien und die Programmiersprache Java sind in der Summe so umfangreich, dass wir unsere Dokumentation zu Java in verschiedene Bestandteile wie miunter A1, A2, B1, B2, C1, C2, C3 und dergleichen gliedern.
Man kann diese Gliederung als Ebene (englisch: tier) und Meilensteine (engl. milestone) verstehen. Es ist also zweckmäßig, zuerst alle Meilensteine in Ebene A von A1 bis A3 kennenzulernen bevor man mit Ebene B forsetzt.
JAVA-A
JAVA-A
JAVA-A1
JAVA-A1 | Fundamentals
Variablen, Types, Literals, Operatoren, Expressions, Statements, Blocks, Scope, Control Flow Statements: Wir geben den Einblick in die strikt typisierte Programmierung von Programmen in Java mit einem darüber hinausgehenden Überblick über die sowohl deutsch- als auch englischsprachigen Fachbegriffe.
Auch wenn Java Programme von Beginn an strikt objektorientiert und typisiert programmiert werden, so kennt auch Java durchaus den allgemeinen Begriff der Variablen auch. Wir bauen mit Operatoren letztendlich Ausdrücke zur Erzeugung von Ergebnissen. Wir geben einen Einblick in die Bedeutung von Blöcken bei der Synchronisierung von Threads oder auch den Gültigkeitsbereich ein Variablen.
Menü
JAVA-A1 Intro JAVA Technologie vs. JAVA Sprache Objektorientierung (Prinzip) Basics Variables Primitive Typen WrapperOperators Rechenoperatoren instanceOf Operator Operators a=b?c:d;
Control-Flow-Statements for Laufvariable Init Conditions Increment After Beispiele zu for(;;) do-while if-elseif-else else if else Beispiele zur Fallunterscheidung if/else if/else in Kurznotation switch switch(int) switch(String) switch(enum) switch(obj) Dispatch via Maps (Ausblick/Example) Branching-Statements break continue Schleifen mit Labels Erweiterte for-Schleife für Collections Switch Expressions (JEP 361, Java 14) mit yield und Arrow-Notation Branching in Streams @! verschieben zu C2!
Arrays Arrays Array-Literale zur Initalisierung Multi-Dimensional-Array Bracket-Array JaggedArray-Array 3D-Array als Matrix 3D-Jagged-Array Arrays in String-Darstellung ausgeben
JAVA-A2 | Programming
JAVA-A2 | Programming
Im Teil JAVA-A2 befassen wir uns vertiefend mit ausgewählten Themen in Erweiterung zu den Grundlagen aus JAVA-A1.
Try-Catch-Konstuktore und Exceptions, Überblick über primitive Typen im Typensystem, Konvertierung von Typen, Einblick in das Arbeiten mit Zahlen, Strings sowie Regulären Ausdrücken.
Menü
JAVA-A2 main-Methode main Arguments Konsolenparameter interpretieren Lokalisierung von Strings Design-Pattern Java NIO DateTime API Unit Tests mit JUNIT Java StringBuffer und StringBuilder Java Random und Seeds Java Math Exception Handling null Nullables Pattern zur Vermeidung von null-Problematiken Regular ExpressionsJAVA-A3
JAVA-A3 | Common Packages
Java bietet eine Vielzahl von Packages mitunter für die Verarbeitung von Zeichenfolgen, eine neue API für Datum und Zeitangaben, Erzeugung von Zufallszahlen, Formulieren und Prüfen von Regulären Ausdrücken, Lokalisation von Datumswerten und Zahlenformaten, Lesen einfacher Property-Dateien und vieles mehr. In diesem Themenblock geben wir einen groben Überblick.
Die meisten Klassen stammen aus dem Package java.util.*.
Menü
JAVA-A2 main-Methode main Arguments Konsolenparameter interpretieren Lokalisierung von Strings Design-Pattern Java NIO DateTime API Unit Tests mit JUNIT Java StringBuffer und StringBuilder Java Random und Seeds Java Math Exception Handling null Nullables Pattern zur Vermeidung von null-Problematiken Regular ExpressionsJAVA-A4
JAVA-A4 | Documentation
Im Abschnitt JAVA-AX befassen wir uns mit der Übersichtung, Dokumentation
und examplischen Nutzung einer Reihe von Java Klassen, darunter
den ArgumentInterpreter mit dessen Hilfe
die Auswertung von Parametern auf der Kommandozeile auch mit
komplexeren Parametern und Hilfsfunktion ausgewertet werden können.
Die Klassen und zugehörigen Packages dieses Abschnitts dienen im Schwerpunkt dazu, Einsteigern eine gewisse Mindestfunktionalität für zu ermöglichen, ohne im selbst lernen oder verstehen zu müssen, wie man diese Funktionalität programmiert.
Documentation
JAVA-A5 | Documentation
Im Abschnitt JAVA-AX befassen wir uns mit der Übersichtung, Dokumentation
und examplischen Nutzung einer Reihe von Java Klassen, darunter
den ArgumentInterpreter mit dessen Hilfe
die Auswertung von Parametern auf der Kommandozeile auch mit
komplexeren Parametern und Hilfsfunktion ausgewertet werden können.
Die Klassen und zugehörigen Packages dieses Abschnitts dienen im Schwerpunkt dazu, Einsteigern eine gewisse Mindestfunktionalität für zu ermöglichen, ohne im selbst lernen oder verstehen zu müssen, wie man diese Funktionalität programmiert.
External Libraries
JAVA-AX | External Libraries
Im Abschnitt JAVA-AX befassen wir uns mit der Übersichtung, Dokumentation
und examplischen Nutzung einer Reihe von Java Klassen, darunter
den ArgumentInterpreter mit dessen Hilfe
die Auswertung von Parametern auf der Kommandozeile auch mit
komplexeren Parametern und Hilfsfunktion ausgewertet werden können.
Die Klassen und zugehörigen Packages dieses Abschnitts dienen im Schwerpunkt dazu, Einsteigern eine gewisse Mindestfunktionalität für zu ermöglichen, ohne im selbst lernen oder verstehen zu müssen, wie man diese Funktionalität programmiert.
JAVA-B
JAVA-B
Object Orientation
JAVA-B1 | Object Orientation
Mit diesem Themenblock beginnen wir eine Einführung in die sogenannte in die Objektorientierte Programmierung mit einem Einblick in Klassen, Objekte, Methode, Attribute, Members, Interfaces, Default-Methoden von Interface, Prinzipien der Vererbung, Schlüsselworten wie this, super, abstract´ sowie einen Überblick über die Verwendung von Strings, Numbers und Packages und Modulen.
Unter der Annahme, dass wir die absoluten Basics der Programmiersprache JAVA soweit verstanden haben, dass wir einfache Programme schreiben, kompilieren und ausführen können, befassen wir uns in diesem Themenblock mit der Frage, wie man eigentlich eigene Klassen programmiert. Wir werden in diesem Bereich Klassen und zugehörige Member wie Methoden, Konstruktoren und Attribute programmieren und zeigen, wie man eigene Objekte erzeugt und verwendet. Darüberhinaus werde3n wir damit befassen, wie man Klassen in anderen Klassen als Nested Class programmieren kann oder auch Enumeration verwendet.
Collections Framework
JAVA-B2 | Collections Framework
In diesem Teil JAVA-B2 befassen wir uns als Vertiefung zur Themen der objektorientierten Programmierung in Java mit der Einführung mitunter in das Java Collection Framework. Collection Interfaces und zugehörige Implementierungsklassen werden von allen Java Packages in sehr großem Umfang genutzt.
Reflection
JAVA-B3 | Reflection
In diesem Themenbereich befassen wir uns mit der Einführung in Funktionale Programmierung, Funktionale Interfaces, die Syntax und den Scope von Lambda-Ausdrücken sowie einen Überblick über Interfaces des Java Function Package.
Function, BiFunction, Predicate, Consumer, Supplier: Die Bedeutung und Verwendung dieser Interfaces ist die zwingende Voraussetzung für nachfolgende Themenbereiche, darunter u.a. für die Collection Stream API.
Parallel Programming
JAVA-B4 | Parallel Programming
Parallel Programming, Parallel Computing, Multithreading, Single-Threading, MainThread, nebenläufige Programmierung, asynchrone Programmierung ...
In diesem Themenbereich beginnen wir mit einem Einblick in herkömmliche Threads sowie Runnables und steigen aber gleich tief in die Java Concurrency API Interfaces und Klassen ein. Die Prinzipien und Problemstellung rund und Parallel Computing sowie die gängigen Klassen nebst dem Unterschied zwischen blockenden, nicht-blockenden Threads sowie synchronisierten und nicht synchronisierten Membern von Klassen ist für die Collection Stream API dringend anzuraten, um Concurrent Modification Exceptions CMEs zu vermeiden.
Common Data Formats
JAVA-B5 | Common Data Formats
@todo: Dieser Bereich JAVA-B5 ist für einen Einblick in übliche Datenformate wie XML, JSON, HTML5 etc. vorgesehen.
Viele der Inhalte dieser Rubrik werden im Zuge von bestehenden Beispielen an Stellen, wo diese Techniken verwendet, bereits in Kurzfassung erläutert. Wir streben allerdings danach, einen konsequenteren Überblick zu geben, da einige Daten Binärformate und andere Text-Formate und/oder Text basierend auf XML sind, welche sich ganz besonders gut via DOM bearbeiten lassen.
Pattern & Strategien
JAVA-BX | Pattern & Strategien
In diesem Bereich gehen wir aus übliche Ansätze und Entwurfsmuster, sogenannte Pattern wie beispielsweise Factory Klassen, Singletons, Builder Pattern oder Adapterklassen.
Jedes dieser Pattern hat gewisse Vorteile für bestimmte Einsatzzwecke. Die Kenntnis dieser Entwurfsmuster und der zugehörigen Bezeichnungen hat den Vorteil, dass man nicht nur manche Probleme schneller lösen kann sondern sich auch andere Entwickler als Nutzer sich schneller zurechtfinden.
JAVA-C
JAVA-C
Funktionale Programmierung
JAVA-C1 | Funktionale Programmierung
JAVA-C1 gefasst sich mit Lambdas und Funktionaler Programmierung.
Funktionale Programmierung, Methodenreferenzen und Lambda-Expressions sind die Voraussetzung für die Collection Stream API.
JAVA-C1
Funktionale Programmierung
@! Spungmarken in allen Pages testen!
Funktionale Programmierung
Function as Value
Pure Function
Higher-Order Functions
@FunctionalInterface Annotation
Methoden-Referenzen
Bedeutung von Stream API
Optional als neuer Typ
Zusammengefasst
Funktionales Interface
@FunctionalInterface
Lambda-Expressions
Simple / Komplex
Scope
Custom-Functional-Interfaces
Custom-Functional-Interfaces
Custom-Functional-Interfaces
Herkömmliches Interface
Funktionales Interface IRechnerDouble definieren und verwenden.
Generische funktionale Interfaces
@FunctionalInterface
Beispiele mit IRechnerGenericFlexible<Integer> r = ..
Beispiel: Lambda-Rechenoperationen mit Objekten
Beispiel: IRead T, IUpdate T, I Read T, IPrint T
Predefined Functional Interfaces
Overview
Function
BiFunction
Predicate
Supplier
Consumer
Diagramm aller Predefined Functional Interfaces
Diagramm Converter Interfaces
ToIntFunction/ToIntBiFunction
DoubleBinaryOperator (EXAMPLE)
@! Sprunmarken ergänzen/testen!
plugin-and-command-pattern-architecture
Beispiel/Collection
Collection Framework
JAVA-C2 | Collection Framework
In diesem Teil JAVA-C2 befassen wir uns als Vertiefung zur Themen der objektorientierten Programmierung in Java mit der Einführung mitunter in das Java Collection Framework. Collection Interfaces und zugehörige Implementierungsklassen werden von allen Java Packages in sehr großem Umfang genutzt.
JAVA-C2
Collection Advanced
Collection Advanced
Problemstellung
Diagramm
Concurrent Collection Interfaces & Classes
Thread-sichere Lists
Collection.synchronizedList()
CopyOnWriteArrayList (@Bsp?)
Thread-sichere Sets
Collection.synchronizedSet()
CopyOnWriteArraySet
Thread-sichere Queues
BlockingQueue
ArrayBlockingQueue
LinkedBlockingQueue
PriorityBlockingQueue
Nicht-serialisierbare Queues
SynchronousQueue
DelayQueue
Thread-sichere Maps
Collection.synchronizedMap(..)
ConcurrentHashMap
Aggregate Operations
Streams & Aggregate Operations (Overview)
@! 15 Page Section Links fehlen!
Person ExampleData
Aggregate Operations @!section?
stream() @!section?
for-Loop
for-Loop
stream() und forEach()
Streams und Pipelines
Filter und Predicates
EXAMPLE 03 Stream/Predicate/Consumer
EXAMPLE 04 Consumer mit Generic Type Parameter
EXAMPLE 05 Predicates/Enums/Collection
"Pipelines"
EXAMPLE 06 Mapping to new Type
EX6 Summary
maptTOInt, ToIntFunction, IntStream.average() OptionalDouble
EXAMPLE 07 Map Key-Value-Array zu LinkedHashMap
Stream.mapToObj(k,v)
collect(Collectors.toMap(a,b,c,d)
Map.entry(k,v)
map(*).findFirst().orElse(*)
Map.getOrDefault(..)
Collection Reduction
stream.reduce
Collection Collecting
Collection stream.collect
@! Kapitel überprüfen!@! Java-Tier von B4 auf B2 verschoben!@! Alle Links/Referenzen checken!
Collection-Parallelism
Collection Stream API ab JAVA 8
.parallelStream()
.parallelStream()
.parallelStream().mapToInt(*).average).getAsDouble()
Typ OptionalDouble
Begriff Fork
Begriff Join
Executing Streams in Parallel (01)
Concurrent Reduction (02)
Ordered Sequentiell (03)
Ordered Parallel (04)
Side Effects
Parallel Computing "Lazyness" (06)
Interference (07)
State-Full-Lambda Expressions (08)
zustandsbehaftete Lambda-Ausdrücke (08)
Collections, Streams & AlgorithmsCollection Streams (Overview) UIO SimulateDownloadDataProvider** connectSimulated():ListINTFilter (prime, schnapps, quer, mod, Operationsfilter, map, sorted, collect, reduce, peek, limit
(Collection FAQ)
Datenquellen zu Streams konvertieren
Array-Stream
Collection-Stream
Map-Stream
Primitive-Stream
Generatoren-Stream
Iteratoren-Stream
(Collection Implementations)
(Collection Algorithms)
JAVA-C3 | Networking
JAVA-C3 | Networking
Im Bereich JAVA-C3 befassen wir uns mit Datenbanken.
Im Bereich JAVA-C3 befassen wir uns zu Beginn mit den Grundlagen der Netzwerk-Kommunikation in JAVA mit DNS, Domain, IP, URI, URL, MIME Types, Charset, UFT-8 Codepoints, Konvertierung von Strings zu UTF-8/16. Im weiteren Verlauf zeigen wir, wie man Verbindung über Sockets oder auch HTTP Services realisiert.
JAVA-C3
Network-Programming
Network Basics
Grundlagen
TCP
UDP
Datagram
IP-Adressen
Port
listen
DNS
Domain-Name
DNS
A- und AAAA-Records
CNAME-Record
Reverse-DNS / PTR-Record
TTL
Windows: DNS und Host
Windows: Firewalls und Ports
HTTPS.SYS
Nginx als Reverse-Proxy
Binding
Lokale Netzwerke und NET
URI
scheme
host
port
path/file
Query
Fragment / Anchor
(01) Hierarchischer URI
(02) Opaque URI
(03) URI mit Sonderzeichen
(04) Normalisierung von URI
(04) Normalisierung von URI
Prüfen auf Gleichheit
a.compare(b)
a.equals(b)
(05) Relative in absolute URIs übersetzen
URL Encoding/Decoding
URL-Encoding
ASCII
Unicode
Codepage
UTF-8
UTF-16
UTF-32
ISO-8859-1
UTF-32
URLDecoder
StandardChartsets.UTF_8
Blocking-I/O
Non-Blocking-I/O
network-java-sockets
@! network-java-nio FEHLT
Client-Server mit Sockets
Unabhängige Java-Programme in Kommunikation über Sockets
Client
Server
@! com.stuelken.java.c1.networking.basics.sockets Version prüfen!
@! com.stuelken.java.***.a7.e50200_clientserver_keyvalue.client KeyValueClientResilient class
@! Das müssten 3 verschiedene Beispiele/Pages sein!
@! Erfordert com.stuelken..ArgumentInterpreter!
@! Sprungmarken für Client, Server, .. ergänzen
Webservices
JAVA-C4 | Webservices
Programmierung von Client-Server-Anwendungen in Java mit Bordmitteln: ServerSocket und Sockets sowie die HttpServer Klasse. Beispiele zur Programmierung des Datenaustauschs zwischen einem Java-Client mit einem Java-Service zum Austausch von rundimentären Nachrichten oder auch Encoding und Decoding von JSON.
Netzwerk-Programmierung über Sockets mit/ohne HTT: Client/Server-Anwendung über Sockets, HttpServer, HttpRest, Response.
JAVA-C4 v.1.5.3.94
@!Page Argument Interpreter
@!Page org.json
@!Page Examples fehlen
com.stuelken.java.c1.webservice.e00
com.stuelken.java.c1.webservice.e02
com.stuelken.java.c1.webservice.e03
com.stuelken.java.c1.webservice.e04_crawler
Java + Maven
Java + JUnit Testing
Java + XML
@! Frameworks/Libs werden Java-Tier-D
JDBC Databases
JAVA-C5 | JDBC Databases
Im Bereich JAVA-C5 befassen wir uns mit einem Einblick in die Anbindung von Java an relationale SQL Datenbanken.
Im Beispiel verwenden wir die Datenbank MariaDB. Diese ist mit MySQL weitestgehend kompatibel, hat aber ein anderes Lizenzmodell als MySQL von Oracle.
JAVA-C5
Kurze JDBC Einführung
MariaDB Datenbank Installation
MariaDB Datenbank Installation
Download/Installer/Settings/DefaultDataBase
JDBC Connector beschaffen/speichern
JAVA Projekt: Datenbanktreiber integrieren
DB Server starten/stoppen
User anlegen/SQL-Back zurückspielen/sichern
User und Rechte
@! Sprungmarken fehlen/falsch
Connection
Verbindung von Java mit Datenbank
Connection-Instanz
PreparedStatement
@! Sprungmarken fehlen/falsch
@! Beispiel create/read/update/delete/list fehlt.
CRUD & LIST
sql-commands
Client/Server Tools
JAVA-CX | Client/Server Tools
Dependency Management ist ein zentraler Aspekt in der Anwendungsentwicklung, denn an irgendeinem Punkt wird jeder Entwickler feststellen, dass man mit den üblichen Java Packages, dem eigenen Quellcode und den eigenen Ressourcen wie Konfigurationsdateien, Settings, Properties und Assets nicht weiterkommen wird. Sie werden feststellen, dass Ihr Code nicht nur mal eine weitere Klasse benötigt: Er setzt diese auch in einer bestimmten Version voraus. Der Standard für die Planung und Verwaltung von Abhängigkeiten im Java Umfeld sind Maven und Gradle.
In diesem Themenbereich rund um Dependency Management befassen wir uns im Schwerpunkt mit Multi Module Projects in Verbindung mit Apache Maven und zeigen an Hand von Beispielen, wie man den Programmcode einer Client-Server-Anwendung in Common-, Client-, Server- und Vendor-Blöcke gliedern, konfigurieren, beschaffen, aktualisieren, kompilieren, testen und verifizieren kann.
JAVA-CX
Maven
Überblick
Architektur & Begriffe
>Lebenszyklen & Phasen
>Core-Plugins & Projektstruktur
>POM im Detail
>Dependencies
Archetypes
Plugins
maven‑shade‑plugin für Fat JAR
Multi-Module Projekte
Modulabhängigkeiten
Build-Reihenfolge
CI/CD (Praxis & Ausblick)
Jenkins
GitHub Actions
Docker
Local Git-Repo & Local Jenkins
Maven-Build & Test Automatisierung
Docker-Images erzeugen
CI/CD & DevOps
Jenkins
GitHub Actions
Docker
Nginx
JAVA-D
JAVA-D
Dependency
JAVA-D1 | Dependency & Integration
In diesem Bereich geben wir einen kurzen Überblick über ausgewählte Tools im Zusammenhang mit dem Betrieb von in Java entwickelten Client-Server-Anwendungen.
Auch wenn man vom Prinzip her die zugehörige Server- und Client-Seite einer Anwendung auch komplett in Java schreiben kann, so steht der eine oder die andere beim dem Versuch, den Services auch tatsächlich mit Verbindungen aus dem Internet betreiben zu können, vor ein paar Problemstellungen.
JAVA-D1
Maven
Überblick
Architektur & Begriffe
>Lebenszyklen & Phasen
>Core-Plugins & Projektstruktur
>POM im Detail
>Dependencies
Archetypes
Plugins
maven‑shade‑plugin für Fat JAR
Multi-Module Projekte
Modulabhängigkeiten
Build-Reihenfolge
CI/CD (Praxis & Ausblick)
mvnmulti-e01
maven-multi-project
common/client/server
mvnmulti-e02
maven-multi-springboot-project
mvnmulti-e03
Spring Boot Service
Java Persistance API
Test Driven Design
JAVA-D2 | Test Driven Design
Mit steigendem Umfang an Funktionalität, Endpoints der API, Anzahl der zusammenwirkenden Clients und Services als Teil einer Anwendung wächst das Risiko von Fehlern für eine häufige Problemstellung: Teile einer Anwendung oder aber auch Code aus Drittquellen, der im Zuge von Depencies Teil der Anwendung ist. Manuelles Testen wird schnell unwirtschaftlich. Die Automatisierung von Unittest und Integrationstest ist dringend anzuraten.
In diesem Themenbereich rund um CI/CD, Devops und "Infrastructure as Code" befassen wir uns mit der exemplarischen Installation von Servern, Programmiersprachen, Datenbanken, Proxies, Datenbanken, Versionierungsverfahren und damit mitunter mit Linux, Eclipse, Java, Git, Jenkins, Docker, Nginx.
JAVA-E
JAVA-E
Dependency
JAVA-E1 | Java/Jakarta EE
Die einst als J2EE mit Java 1.2 entstandene Java Enterprise Edition, später oft auch Java EE genannt, wurde 2015 mit Ende der Version Java 8 von Oracle zur weiteren Pflege und Weiterentwicklung an die Eclipse Foundation übertragen und von dieser wiederum aus markenrechtlichen Gründen bei allen Java-Begriffen in Jakarta EE umbenannt. Jakarta EE beinhaltet durch aus Referenzprojekte und damit Referenzserver, aber im Kern handelt es sich um eine Spezifikation.
In diesem Themenblock zu Java / Jakarta Enterprise Edition Spezifikationen geben wir einen Überblick die üblichen Standards, Begriffe, gängige Server-Produkte und Frameworks sowie ausgewählte Beispielen, damit man die Grundlagen als Voraussetzung in der Entwicklung auch mit anderen Frameworks wie Spring / Spring Boot verstehen kann.
Dependency
JAVA-E2 | JAVA EE / JAKARTA EE
Dependency Management ist ein zentraler Aspekt in der Anwendungsentwicklung, denn an irgendeinem Punkt wird jeder Entwickler feststellen, dass man mit den üblichen Java Packages, dem eigenen Quellcode und den eigenen Ressourcen wie Konfigurationsdateien, Settings, Properties und Assets nicht weiterkommen wird. Sie werden feststellen, dass Ihr Code nicht nur mal eine weitere Klasse benötigt: Er setzt diese auch in einer bestimmten Version voraus. Der Standard für die Planung und Verwaltung von Abhängigkeiten im Java Umfeld sind Maven und Gradle.
In diesem Themenbereich rund um Dependency Management befassen wir uns im Schwerpunkt mit Multi Module Projects in Verbindung mit Apache Maven und zeigen an Hand von Beispielen, wie man den Programmcode einer Client-Server-Anwendung in Common-, Client-, Server- und Vendor-Blöcke gliedern, konfigurieren, beschaffen, aktualisieren, kompilieren, testen und verifizieren kann.
JAVA-CX
Maven
Überblick
Architektur & Begriffe
>Lebenszyklen & Phasen
>Core-Plugins & Projektstruktur
>POM im Detail
>Dependencies
Archetypes
Plugins
maven‑shade‑plugin für Fat JAR
Multi-Module Projekte
Modulabhängigkeiten
Build-Reihenfolge
CI/CD (Praxis & Ausblick)
Jenkins
GitHub Actions
Docker
Local Git-Repo & Local Jenkins
Maven-Build & Test Automatisierung
Docker-Images erzeugen
CI/CD & DevOps
Jenkins
GitHub Actions
Docker
Nginx
JAVA Prinzipien
Überblick über typische Konventionen, Prinzipien, Gepflogenheiten rund um JAVA Programmierung.
Die Inhalte dieses Kapitels sind noch nicht digitisiert worden.
JAVA How-To
Praktische Lösungsansätze
Der Einblick in Grundlagen in Java ist schön und gut, aber für manche Aspekte in der Programmierung ist es praktisch, wenn man How-To oder Anleitungen findet. n
Die Inhalte dieses Kapitels sind noch nicht digitisiert worden.
JAVA Sprachreferenz
Links zur Sprachreferenz von Java.
Die Inhalte dieses Kapitels sind noch nicht digitisiert worden.
FootNotes
Eclipse Foundation, Java EE, Objektorientierte Programmierung
UIO3 Es ist einfacher als Du denkst.
Stelle noch heute Deine Anfrage.





