Blog & Articles by Michael Vitz

Article

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.

Article

Always up to date

JDK 23 already contains the second preview for the new Class-File API, which will probably be completed in JDK 24. Now it’s time to take a look at what this API is all about and how we can use it.

Article

Spring Boot Actuator Endpoints

What does 'production-ready' actually mean?

Article

Building Standardized AI Tools with the Model Context Protocol (MCP)

In this article, we’ll explore the integration of Large Language Models and systems built on top of them. The key concept in this space recently is the Model Context Protocol (MCP).

Article

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

Article

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.

Article

Java and its annotations

Java code without annotations is hardly conceivable nowadays, even though it is constantly criticized. It’s hard to believe that there was a time before them. Three use cases demonstrate how these problems were solved before the introduction of annotations and how things could work without them today.

Article

Spring Boot und explodierte JARs

Spring Boot Deployments effizienter machen

Article

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.

Article

Automating Dependency Updates with Renovate

Regardless of whether we are working on an application or a library, we always have to deal with dependencies. We are dependent on the version of our programming language, on external or internal libraries, and on tools. In addition to the actual administrative tasks, it is also necessary to update these regularly. Even beyond performing the update itself, this means we need to learn when a new version exists. That’s why this article examines a bot-based solution that can help us with this exact issue.

Article

Combinable Elements for User Interfaces on the Web

Components in web applications

Article

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.

Article

JDK 21, the next long-term support release

An overview of the changes since JDK 17

Article

Containers for tests and local development with Spring Boot 3.1

Spring Boot 3.1.0, the most recent minor release of Spring Boot 3, appeared in May. In this article, we will be taking a look at how the new support for Testcontainers and Docker Compose can help us with tests and local development.

Article

Testing in Spring Boot applications

In addition to production code, we typically also write tests to discover and correct possible errors as early as possible in the development process. For new functionality, it isn’t even uncommon to write more test code than production code. At the same time, the tests should be as fast as possible, so they can be executed frequently without causing long delays. In this article, we explore how this can be done in applications based on Spring Boot.

Article

Tracing in verteilten Anwendungen

Spuren im Microservicedschungel finden

Article

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.

Article

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.

Article

Logging in Java

Introduction to the logging jungle

Article

Querying DNS and LDAP Using JNDI

The Log4Shell vulnerability has also placed JNDI in the spotlight. Although JNDI has been around since 1997, many developers have never heard of it or don’t know exactly what it’s for. To change this, in this article we’ll look at what JNDI is and how we can use it.

Article

Processing JSON in Java

In contrast to many other programming languages, JDK for Java does not provide an out-of-the-box solution for the reading and writing of data in JavaScript Object Notation (JSON). So we have to find a suitable library for performing this task. In this article we therefore look at a selection of appropriate libraries.

Article

Libraries for command-line applications

Processing arguments and options in Java

Article

A Comparison of Java HTTP Clients

In addition to databases, communication via HTTP to other services is nowadays found in almost every project. A large number of libraries have been built within Java that can be used for this purpose. In this article we will take a closer look at four of these candidates and see in which aspects they differ from one another.