Blog & Articles by Michael Vitz

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

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.

Article

Immer up to date

Das Class-File API für den programmatischen Umgang mit Bytecode

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

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.

Article

Diverse Kommandozeilenwerkzeuge für Container und Kubernetes

Mehr Auswahl im Kommandozeilenwerkzeugkasten

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

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.

Article

Was ist eigentlich htmx?

Das fehlende Puzzlestück von HTML?

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

The way we develop user interfaces on the web has changed significantly in recent years. In this column, we therefore want to examine what a modern approach looks like and which challenges this poses, especially for classic template engines from the Java world.

Article

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.

Article

JDK 21, the next long-term support release

The newest JDK release, version 21, appeared on September 19th. A number of developers view it as a long-term support release that will be supported for at least the next five years. As many applications will presumably be updated to version 21 from JDK 17, the last long-term support release, we would like to take this opportunity to examine the relevant changes from 17 to 21.

Article

Containers for tests and local development with Spring Boot 3.1

Spring Boot test containers & Docker Compose

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

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.

Article

Container-Images mit Buildpacks erzeugen

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

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

Logback, Log4j, SLF4J, and many more. Anyone working with automatic logging in Java will immediately come across an entire range of libraries that, at first glance, seem to do the same thing: issue log messages. So, in this article, we want to look at why there are so many libraries in Java and how they actually differ from each other upon closer inspection.

Article

Querying DNS and LDAP Using JNDI

What Is JNDI Actually?

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

Command-line applications are admittedly not the most common due to the start time of the JVM. Their development for internal applications can however be appropriate, depending on the level of knowledge of the team. And thanks to the native compiling with GraalVM, the start time is accelerated. Much of the work involved in a command-line application involves parsing and use of the provided arguments and options. We look at four possible libraries that can assist us.

Article

A Comparison of Java HTTP Clients

Many Roads Lead to the Web

Article

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.