Posts

Java 17: Sprach-Freatures der neuen Langzeit-Support-Version

Bild
Welche Java Features helfen uns künftig besseren Code zu schreiben? In den Java Versionen 12 bis 17 gibt es spannende, neue Features - ich zeige euch diese hier: Text Blöcke Erweiterungen bei instanceof Neuerungen bei switch Records Versiegelte Klassen RandomGenerator 🎓 Auf Udemy findet ihr meinen kostenloses Online-Kurs zu diesem Blog-Artikel:  Java 17 @ Udemy Neue Java Versionen Seit Java 9 gibt es halbjährlich ein neues Release. Java 11 ist aufgrund des verlängerten Supports bis September 2026 ein wichtiges Release. Daher wird Java 11 aktuell häufig im Berufsumfeld eingesetzt. Seit September 2021 gibt es mit Java 17 ein neues Release mit verlängertem Support (LTS). Dieses wird Java 11 im Berufsumfeld mit der Zeit ablösen. Hier zeige ich Features der Java Versionen 12-17, welche direkten Einfluss auf die Code-Qualität haben und somit zum Thema Clean Code passen. Einen guten Überblick über Java Versionen, Erscheinungsdaten und Feature-Listen findet ihr bei Wikipedia:  https://en.wiki

Testautomatisierung von REST-APIs und Microservices

Bild
Services oder Microservices mit REST-API können mit wenigen und einfachen Tools entwicklungsbegleitend getestet werden. Mit dem Spring Boot Standard Technologie-Stack bestehend aus JUnit, Mockito und Maven können EntwicklerInnen direkt loslegen und automatisierte Unit- und Integrationstests schreiben. In diesem Artikel werde ich dies demonstrieren und Tipps zur Integration in eine CICD Pipeline geben. Die Testpyramide bzw. Testarten Wenn ihr nach der Testpyramide sucht, findet ihr relativ viele verschiedene Varianten. Das Prinzip ist aber immer ähnlich: die meisten Tests werden auf der untersten Ebene benötigt, wo die kleinsten Einheiten möglichst umfangreich getestet werden. Das ist typischer Weise die Testart Unit Tests zum Testen von einzelnen Klassen. Je höher man in den Ebenen der Testpyramide aufsteigt, desto weniger Tests werden benötigt, da diese Tests einen deutlich größeren Bereich des Systems durchlaufen. Für Services oder Microservices mit einer REST-API könnte die Testpyra

Eclipse als IDE für Java-/Spring-Projekte einrichten

Bild
Microservice-Entwicklung leicht gemacht mit einer passend eingerichteten Entwicklungsumgebung!  In diesem Post gebe ich Tipps, wie ihr eure IDE installiert, konfiguriert und mit guten Plugins erweitert. Als Bonus für Konzern-Angestellte erkläre ich, wie der Proxy eingestellt wird. Eclipse & JDK installieren Dieser Abschnitt ist irgendwie wenig überraschend... "Eclipse IDE for Java Developers" herunterladen und installieren bzw. entpacken. https://www.eclipse.org/downloads/packages/ JDK in Version 17 herunterladen und installieren. https://www.oracle.com/java/technologies/downloads/#java17 Das aktuelle Eclipe 2022-06 wird mit inkludiertem JRE geliefert. Diese JRE Version wird nur zum Starten von Eclipse benötigt. Das JDK 17 verwendet ihr dann für eure Software-Entwicklung in Eclipse. Ihr könnt natürlich noch weitere JDK Versionen installieren und diese dann auch für die Entwicklung in Eclipse nutzen. Eclipse konfigurieren / Proxy setzen Alle Eclipse Konfigurationen werden

Streams vs. Loops in Java

Bild
Java hat seit Version 8 mit der Stream API eine mächtige Alternative zu Schleifen. Die modernere, reaktive Programmierung setzt voll auf Streams (Flux). Daher möchte ich in diesem Artikel Streams und Loops gegenüberstellen, indem ich die gleiche Aufgabe mittels Stream und Schleife löse.   Java Streams API Ein Stream ist ein Datenstrom. Mit der Java Stream API können wir die Objekte in diesem Datenstrom analysieren, bearbeiten, filtern, umwandeln usw. Ich stelle mir Stream gerne als Fließband vor. Die Objekte werden von einer Quelle (z.B. List ) auf das Fließband gepackt und durchlaufen verschiedene Stationen, an denen sie bearbeitet werden. Zum Abschluss werden sie in ein Ergebnis gepackt (z.B. neue List ), welches dann im weiteren Programmcode benutzt werden kann. Fließband: Stream der analogen Welt Intermediate Operations Zum Bearbeiten der Objekte im Stream gibt es sogenannte "intermediate Operations", die im Stream Interface definiert sind: filter - entfernt Objekte aus d

Model-View-Controller mit Spring und Thymeleaf

Bild
Thymeleaf ist eine moderne Template Engine, um Server-seitig html zu generieren. Hier zeige ich, wie es in einem Spring MVC Projekt eingesetzt wird. Dabei demonstriere ich verschiedene Thymeleaf Ausdrücke (if, loop, usw.), Lesen des Modells und Nutzung von CSS oder JavaScript. Model-View-Controller mit Spring und Thymeleaf Betrachten wir das bekannte Design Pattern MVC (siehe auch rest-json-apis-in-java-leicht-gemacht ), dann können wir die einzelnen Bestandteile mit dem hier vorgestellten Technologie-Stack implementieren: Das Modell ( Model ) wird mit einfachen Java Objekten realisiert (POJO). Die Ansicht ( View ) wird mittels Thymeleaf in html, css und JavaScript implementiert. Der Controller wird als Spring Bean vom Typ @Controller umgesetzt. Thymeleaf ( https://www.thymeleaf.org/ ) ist eine Template Engine deren Templates in html geschrieben werden. Dynamische Stellen im html werden dann durch Thymeleaf Ausdrücke definiert. Z.B. blenden wir mit folgendem if -Ausdruck eine Nachrich