Blog by Michael Vitz

Blog Post

Spring Boot Actuator Endpoints

The Actuator module has been promising to help make the application ‘production-ready’ since the start of Spring Boot. But what exactly does that mean? What does the module already offer and how can we expand it? This article provides detailed answers to all these questions.

Blog Post

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.

Blog Post

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

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.

Blog Post

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.

Blog Post

Automating Dependency Updates with Renovate

Always stay up to date

Blog Post

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.

Blog Post

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.

Blog Post

Containers for tests and local development with Spring Boot 3.1

Spring Boot test containers & Docker Compose

Blog Post

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.

Blog Post

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.

Blog Post

Querying DNS and LDAP Using JNDI

What Is JNDI Actually?

Blog Post

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.

Blog Post

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.

Blog Post

A Comparison of Java HTTP Clients

Many Roads Lead to the Web

Blog Post

Using feature flags with FF4j, Togglz, and Unleash in Java

Feature flags are now a fixed feature of many projects. In this column we will consider which problems can be resolved with their use. In addition to the theory, we also look at the three Java libraries FF4j, Togglz, and Unleash, with which feature flags can be used in Java.