Blog & Artikel von Michael Vitz

Artikel

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

In diesem Artikel beschäftigen wir uns mit der Integration von Large Language Models und darauf aufbauenden Systemen. Das Schlagwort der letzten Zeit dazu lautet: Model Context Protocol (MCP).

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 Class-File API für den programmatischen Umgang mit Bytecode

Artikel

LLMs mit Spring AI integrieren

Die gesamte Welt spricht aktuell über Generative KI und Large Language Models (LLMs). Und auch wenn ich persönlich das Thema aktuell als zu sehr gehypt empfinde, sollten wir solche Trends nicht komplett verschlafen. Daher zeigt dieser Artikel, wie sich LLMs mit Spring AI integrieren lassen.

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

Mehr Auswahl im Kommandozeilenwerkzeugkasten

Artikel

Java und seine Annotationen

Java-Code ohne Annotationen ist heute kaum mehr denkbar, auch wenn es hieran immer wieder Kritik gibt. Doch, kaum zu glauben, es gab auch eine Zeit vor diesen. Drei Anwendungsfälle demonstrieren, wie diese Probleme vor der Einführung von Annotationen gelöst wurden und wie es auch heute ohne diese gehen könnte.

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?

Das fehlende Puzzlestück von HTML?

Artikel

Zukünftige Features des JDK

Ich weiß nicht, wie es Ihnen geht, aber seitdem mit JDK 9 der Release-Zyklus des JDK auf sechs Monate verkürzt wurde und wir mittlerweile, dank Preview und Incubator, auch Features bereits vor der vollständigen Fertigstellung ausprobieren können, wirkt das JDK lebendiger als eh und je. In diesem Artikel wollen wir deswegen einen Blick in die Zukunft werfen und uns aktuelle Preview-Features anschauen, die es vermutlich in naher Zukunft final ins JDK schaffen werden.

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

Komponenten in Webanwendungen

Artikel

Abhängigkeitsupdates mit Renovate automatisieren

Egal ob wir an einer Anwendung oder Bibliothek arbeiten, wir haben es immer mit Abhängigkeiten zu tun. Wir sind abhängig von der Version unserer Programmiersprache, von externen oder internen Bibliotheken und von Werkzeugen. Neben der eigentlichen Verwaltung müssen diese auch regelmäßig aktualisiert werden. Das erfordert, neben dem Update selbst, auch, dass wir mitbekommen müssen, wenn es eine neue Version gibt. In diesem Artikel schauen wir uns deswegen eine Bot-basierte Lösung an, die uns genau hierbei unterstützen kann.

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

Spring Boot Testcontainers & Docker Compose

Artikel

Testen in Spring Boot-Anwendungen

Normalerweise schreiben wir neben Produktionscode auch Tests, um mögliche Fehler so früh wie möglich im Entwicklungsprozess zu finden und zu beheben. Häufig schreiben wir sogar für eine neue Funktionalität mehr Test- als Produktionscode. Gleichzeitig sollen die Tests möglichst schnell sein, damit diese häufig ausgeführt werden können, ohne große Wartezeiten zu produzieren. In diesem Artikel betrachten wir, wie das in Spring Boot basierten Anwendungen umgesetzt werden kann.

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

Also, wat is en Buildpack? Da stelle mehr uns janz dumm

Artikel

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

In diesem Artikel betrachten wir bunt gemischt diverse Themen und Bibliotheken rund um Tests für und mit Java. Dabei folgen wir keinem roten Faden, sondern lassen uns durch das übergreifende Thema treiben.

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

Was genau ist eigentlich JNDI?

Artikel

JSON in Java verarbeiten

Im Gegensatz zu vielen anderen Programmiersprachen bringt das JDK für Java keine fertige Lösung für das Lesen und Schreiben von Daten in der JavaScript Object Notation (JSON) mit. Wir müssen uns also eine passende Bibliothek für diese Aufgaben suchen. In diesem Artikel schauen wir uns deswegen eine Auswahl von Bibliotheken an.

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.

Artikel

Java-HTTP-Clients im Vergleich

Viele Wege führen ins Web

Artikel

Maven, das unbekannte Wesen – Teil 2

Bereits in der letzten Kolumne haben wir uns mit vier Themen zu Maven beschäftigt. Natürlich war diese nicht erschöpfend und es gibt noch viele weitere Themen, die eine Betrachtung wert sind. In dieser Kolumne betrachten wir deswegen fünf weitere Themen, die meiner Meinung nach wertvoll sind.