Latest Posts

Entwicklungspraxis June 26, 2023

Laziness Prevails

Hi,

Laziness prevails. Always. Countless times I’ve tried to adopt beneficial routines.

I joined a gym - after a few months, I barely went anymore.

I baked my own bread - after (admittedly) two years, I no longer did.

I got up at 5 am to meditate and exercise - I couldn’t maintain this for more than 4 weeks.

As good as these routines would have been, had I kept them up for years - they come with high investments. Carrying them out takes a lot of energy. To muster up the will, pack your things, hop on a bike, and head to the gym. That requires energy.


Entwicklungspraxis June 19, 2023

Is Anyone Actually Reading This?

Hi,

Is anyone actually reading the newsletter? Well, you’re doing it right now ;-)

I started my blog in 2019. Back then under the name code-held.com. It was not my intention at all to provide valuable, SEO optimized content that helps random visitors to the site. No. It was there for two things. On one hand as a reference for future job applications - I knew I would soon be moving back to my hometown and would need a new job. And on the other hand as a “hack”, to avoid repeating the same argument in PRs. Write it down once, then always link it and “win” 90% of the discussions (if you want to call it that).


Entwicklungspraxis June 16, 2023

How to Monitor Your Spring Boot Application with Spring Actuator and Micrometer

In the world of application development using Spring Boot, it’s crucial to focus not just on the development aspect but also on performance monitoring. In this extensive guide, we’ll explore the steps to set up monitoring for your Spring Boot application using Spring Actuator and Micrometer, and how to employ Prometheus and Grafana for effective metrics handling and visualization.

Understanding Spring Boot Monitoring

Monitoring forms an essential part of ensuring the health of an application. It allows developers to verify the smooth running of the system and detect any potential issues. In the context of Spring Boot, several tools, such as Spring Actuator and Micrometer, make application monitoring an effortless process.


Entwicklungspraxis June 12, 2023

Goodbye Performance Issues: How Project Loom Eliminates Asynchrony

Anyone who develops a backend application with more than a handful of users knows that most performance problems are related to I/O. In modern web applications, these are typically network calls. Whether it’s REST requests to another service, queries to an external database, or communication with middleware. We handle all these cases - consciously or unconsciously - in asynchronous threads. This way, we no longer block the main thread. Doing this correctly is not trivial. Project Loom will be released in September with Java 21. Virtual threads will enable us to write our programs entirely sequentially. And yet, we are still making optimal use of our resources. But what opportunities does this open up for the Spring ecosystem and how will it affect us in the future?


Entwicklungspraxis January 21, 2023

Accessing Non-Final Property Name in Constructor With JPA

The implications of JPA always manage to surprise me. Yesterday a colleague of mine made me aware of a warning in IntelliJ. The conversation went like that: “Marcus, in your blog you explained that we should check constraints in the constructor instead of bean validation . Me: “yeah”. “I wanted to make it right, but when I do it in this entity IntelliJ warns me with Accessing non-final property name in constructor”. So I dug into it. Fearing my conclusion would change the recommendation that I gave in (k)lean JPA two years ago.


Top