Blog & Artikel von Michael Vitz

Artikel

Was, da geht noch mehr? Noch mehr Besonderheiten von und mit Java

Bereits vor ein paar Jahren haben wir uns Dinge angeschaut, die in Java funktionieren, aber sehr ungewöhnlich sind. Diese Liste werden wir in dieser Folge des Praktikers ergänzen.

Artikel

Menschenlesbare Datenformate mit Jackson verarbeiten

Wir nutzen tagtäglich Datenformate. Zum Austausch von Informationen mit anderen Systemen oder auch zur Definition von Dingen wie unserem Build oder zur Konfiguration unseres Systems. Manche davon sind binär, aber auch viele bis heute direkt von Menschen lesbar. Für die Verarbeitung von JSON in Java hat Jackson eine hohe Verbreitung erreicht. Aber Jackson kann mehr als nur JSON, wie wir in diesem Artikel sehen werden.

Artikel

Mit dem Model Context Protocol (MCP) standardisierte KI-Tools bauen

Artikel

Spring Boot Actuator Endpoints

Das Modul Actuator verspricht bereits seit dem Beginn von Spring Boot, dazu beizutragen, dass die Anwendung «production-ready» wird. Doch was genau ist damit eigentlich gemeint, was bringt das Modul bereits alles mit und wie können wir es erweitern? Das alles stellt dieser Artikel im Detail vor.

Artikel

Immer up to date

Das JDK 23 beinhaltet bereits die zweite Preview für das neue Class-File API, das vermutlich in JDK 24 fertig gestellt sein wird. Zeit also, sich einmal anzuschauen, worum es sich bei diesem API handelt und wie wir es nutzen können.

Artikel

LLMs mit Spring AI integrieren

Spring AI stellt sich vor

Blog-Post

Use webjars-locator-lite with internal WebJars

Switching to the new webjars-locator-lite, e.g. by following the Spring Boot 3.4 Release Notes, may result in errors when loading your internal WebJars. This post explains why that is the case and what you can and should do to fix that.

Artikel

Diverse Kommandozeilenwerkzeuge für Container und Kubernetes

Für den Umgang mit Containern und Kubernetes gibt es mittlerweile eine riesige Auswahl an Werkzeugen auf der Kommandozeile. So viele, dass es schwer ist, einen Überblick zu behalten und jedes neue Werkzeug mitzubekommen. Dieser Artikel stellt deswegen einige der vorhandenen Werkzeuge vor, die ich regelmäßig nutze.

Artikel

Java und seine Annotationen

Geschichten von Code vor und ohne Annotationen

Artikel

Spring Boot und explodierte JARs

Auf den ersten Blick scheint das Starten von Spring-Boot-Anwendungen nicht sehr schwer zu sein. Ein Aufruf von java -jar my.jar reicht dafür. Doch wie genau funktioniert das eigentlich? Und wie lässt sich die Softwareverteilung effizienter gestalten? Dieser Artikel beantwortet diese beiden Fragen und nimmt Sie dabei mit auf eine Reise durch die Geschichte von Spring Boot.

Artikel

Was ist eigentlich htmx?

Nicht nur, aber vor allem im JVM-Umfeld stößt man in letzter Zeit immer wieder auf die Bibliothek htmx. Das Versprechen von htmx ist dabei nichts Geringeres, als das fehlende Puzzlestück von HTML zu sein. Deswegen wollen wir uns hier diese Bibliothek im Detail anschauen. Schließlich sollten wir in der Lage sein zu beurteilen, ob es uns in unseren Projekten hilft oder ob wir doch nach etwas anderem suchen sollten.

Artikel

Zukünftige Features des JDK

Ein Blick in die Glaskugel

Blog-Post

Lokale LLMs mit Ollama und Spring AI nutzen

Egal, ob wir wollen oder nicht, um AI und speziell Large Language Models (LLM) kommen wir aktuell nicht herum. Mich schrecken solche Hypes zwar aus Reflex eher ab. Allerdings sieht es so aus, als würde von diesem Hype mehr bleiben als vom letzten, der Blockchain. Deshalb wollen wir uns in diesem Post einmal anschauen, wie man ein LLM lokal aufsetzen kann und dieses mittels Spring AI in eine Spring Boot-Anwendung einbinden kann.

Artikel

Kombinierbare Elemente für Benutzungsoberflächen im Web

Die Art und Weise, wie wir Benutzungsoberflächen im Web entwickeln, hat sich über die letzten Jahre stark verändert. In dieser Kolumne wollen wir uns deswegen ansehen, wie ein moderner Ansatz aussieht und vor welche Herausforderungen dieser, vor allem für klassische Templateengines der Java-Welt, uns stellt.

Artikel

Abhängigkeitsupdates mit Renovate automatisieren

Immer auf dem neuesten Stand bleiben

Artikel

JDK 21, das nächste Long-term Support Release

Am 19.9. ist mit Version 21 das nächste JDK erschienen. Verschiedene Hersteller betrachten es als Long-term Support Release, das damit mindestens für die nächsten fünf Jahre unterstützt wird. Da nun vermutlich viele Anwendungen von JDK 17, dem letzten Long-term Support Release, auf 21 upgedatet werden, wollen wir uns hier die relevanten Änderungen von 17 auf 21 gemeinsam anschauen.

Artikel

Container für Tests und die lokale Entwicklung mit Spring Boot 3.1

Im Mai ist mit Spring Boot 3.1.0 das nächste Minor Release von Spring Boot 3 erschienen. In diesem Artikel wollen wir uns anschauen, wie die neue Unterstützung von Testcontainers und Docker Compose uns bei Tests und der lokalen Entwicklung unterstützen kann.

Artikel

Testen in Spring Boot-Anwendungen

Aber bitte geschnitten

Artikel

Tracing in verteilten Anwendungen

Nicht nur, aber auch durch die DevOps-Bewegung machen sich Teams heute neben der Fachlichkeit vermehrt Gedanken um den Betrieb ihrer Anwendungen. Ein großes Thema ist hierbei Observability, also einen Einblick in den aktuellen Zustand des Systems zu haben. In dieser Kolumne betrachten wir mit Tracing einen der drei Bereiche von Observability und lernen anhand eines konkreten Beispiels, wie wir diesen umsetzen können.

Artikel

Container-Images mit Buildpacks erzeugen

Im Rahmen dieser Kolumne habe ich mich schon häufiger auch mit Containern und Docker beschäftigt. Obwohl es sich hierbei weder um ein Java- noch um ein direktes Entwicklungsthema handelt, ist es für viele Projekte von hoher Relevanz. Schließlich spielt heute auch der Betrieb von Anwendungen für die meisten Entwicklungsteams eine hohe Rolle und dieser nutzt aktuell in vielen Fällen Container. Hier wollen wir uns mit Buildpacks eine weitere Möglichkeit im Detail anschauen, um zu einem Container-Image zu gelangen.

Artikel

Diverse Themen und Bibliotheken für Tests in und mit Java

Eine bunte Tüte Gemischtes rund um Tests

Artikel

Logging in Java

Logback, Log4j, SLF4J und noch viele mehr. Wer sich mit der automatischen Protokollerstellung, dem Logging, in Java beschäftigt, stolpert direkt über eine ganze Reihe von Bibliotheken, die auf den ersten Blick alle dasselbe tun: Log-Nachrichten ausgeben. In diesem Artikel wollen wir uns deswegen anschauen, wieso es in Java diese Menge an Bibliotheken gibt und worin sich diese auf den zweiten Blick unterscheiden.

Artikel

DNS und LDAP mittels JNDI abfragen

Durch die Sicherheitslücke Log4Shell ist auch JNDI ins Rampenlicht gerückt worden. Obwohl JNDI bereits seit 1997 existiert, haben viele davon noch nie gehört oder wissen nicht genau, wofür es da ist. Um beides zu ändern, schauen wir uns in diesem Artikel gemeinsam an, was JNDI ist und wie wir es einsetzen können.

Artikel

JSON in Java verarbeiten

Ein Einstieg in vier JSON-Bibliotheken für Java

Artikel

Bibliotheken für Kommandozeilen­anwendungen

Kommandozeilenanwendungen in Java sind zwar, aufgrund der Startzeit der JVM, nicht die verbreitetsten. Allerdings kann die Entwicklung für interne Anwendungen, je nach Wissensstand des Teams, sinnvoll sein. Und dank der nativen Kompilierung mit der GraalVM wird die Startzeit beschleunigt. Neben der Fachlichkeit besteht ein Großteil der Arbeit einer Kommandozeilenanwendung darin, die übergebenen Argumente und Optionen auszulesen und anzuwenden. Dazu schauen wir uns vier mögliche Bibliotheken an.