Wim Deblauwe

@wimdeblauwe
101 Followers
83 Following
47 Posts
Software Engineer. Writes mostly Java. Author of "Taming Thymeleaf". Blogs at http://wimdeblauwe.com. YouTube: https://youtube.com/@WimDeblauwe
Personal bloghttps://www.wimdeblauwe.com/
Companyhttps://www.widit.be/
GitHubhttps://github.com/wimdeblauwe
Twitterhttps://twitter.com/wimdeblauwe

πŸ”§ New blog post: How I test production-ready Spring Boot applications

Follow-up to my architecture post, covering a complete testing strategy:

βœ… Fast unit tests for value objects
βœ… Use case tests with in-memory repositories (avoid mocking!)
βœ… JPA repository tests with Testcontainers
βœ… Controller tests with MockMvc (two approaches shown)
βœ… Integration tests with API client pattern
βœ… Architecture tests with ArchUnit for consistency

Read more: https://www.wimdeblauwe.com/blog/2025/07/30/how-i-test-production-ready-spring-boot-applications/

How I test production-ready Spring Boot applications

My previous blog post How I write production-ready Spring Boot applications explained how I like to write and structure my production code in Spring Boot applications. This blog post will further explain how I write tests for the code.

πŸš€ New blog post: How I write production-ready Spring Boot applications

After 25+ years of Java development, here's my approach to:
- DDD-based package structure
- Clean use case architecture
- Why I avoid Hexagonal Architecture

Full breakdown: https://www.wimdeblauwe.com/blog/2025/06/24/how-i-write-production-ready-spring-boot-applications/

How I write production-ready Spring Boot applications

This blog post will explain how I currently write Spring Boot applications. I have been writing Java for over 25 years, and most of that involved Spring and its ecosystem. I will talk about how I architect my app, package structure, naming conventions, etc.

Rather use JTE as template engine instead of Thymeleaf with Spring Boot? ttcli 1.9.0 can now generate such a project to get live reload out of the box. Just save and the browser reloads. See https://github.com/wimdeblauwe/ttcli/releases/tag/1.9.0
Release 1.9.0 Β· wimdeblauwe/ttcli

Changelog πŸš€ Features 765acc8 feat: JTE support - Configure Vite so that live reload of JTE templates works 1842385 feat: JTE support - insert correct CSS and JS links depending on template type f9...

GitHub

vite-spring-boot 0.9.0 released with support for JTE as an alternative to Thymeleaf as template engine for Spring Boot so you can have all the Vite niceness for your CSS and JavaScript bits.

https://github.com/wimdeblauwe/vite-spring-boot/releases/tag/0.9.0

Release 0.9.0 Β· wimdeblauwe/vite-spring-boot

What's Changed Support for Java Template Engine by @pbaris in #11 build: Update to Spring Boot 3.3.12 by @wimdeblauwe in #12 New Contributors @pbaris made their first contribution in #11 Full C...

GitHub

Just published: "Combine Testcontainers and Spring Boot with Multiple Containers" 🐳 + πŸƒ

If you're using Spring Boot and need to test against multiple external systems like databases and message brokers, this guide walks through three practical approaches with full code examples.

https://www.wimdeblauwe.com/blog/2025/05/14/combine-testcontainers-and-spring-boot-with-multiple-containers/

#SpringBoot #Testcontainers #Java #Testing

Combine Testcontainers and Spring Boot with multiple containers

Testcontainers is a great technology to run Docker containers of dependencies like a database or a messaging middleware like ActiveMq or Kafka. It might not immediately be obvious how to combine JUnit, Testcontainers and Spring Boot when you have multiple containers that your application needs. This blog post aims to provide some guidance on how to combine them.

Writing a book, does it make you rich and famous? Find out in this new @foojay #Podcast with @trisha_gee, Len Epp, @wimdeblauwe, and @mrvarga.

You'll learn a lot about working with a publisher, self-publishing on @leanpub and #lulu cooperating with multiple authors, flows to automate the writing process, and much more!

Watch on YouTube or listen to your favorite podcast app.

https://www.youtube.com/watch?v=xhEiXA8ImJo

Writing a book. Does it make you rich and famous? (#67)

YouTube
ttcli 1.8.0 released which allows to select between Tailwind CSS 3 or the new version 4. Also some of the webjars have been updated. See https://github.com/wimdeblauwe/ttcli/releases/tag/1.8.0 for details. #springboot #thymeleaf #livereload
Release 1.8.0 Β· wimdeblauwe/ttcli

Changelog πŸš€ Features 88e660d feat: Allow Tailwind CSS version 3 or 4 selection πŸ›  Build 2af9a48 build: Update to Shoelace 2.20.0 030ef0a build: Update to htmx 2.0.4 355c93d build: Update to Alpi...

GitHub
Important update for ttcli users (and readers of my books). You need to update ttcli to version 1.7.0 because of the Tailwind CSS 4.0 release. See https://www.wimdeblauwe.com/blog/2025/01/29/thymeleaf-and-tailwindcss-4.0-updates/ for more information!
Thymeleaf and TailwindCSS 4.0 updates

Last week Tailwind CSS v4.0 was released. This, unfortunately, broke the ttcli tool to generate a Spring Boot with Thymeleaf project when you selected Tailwind CSS.

✍️ New blog 'Problems I no longer have by using Server-side rendering'. This one has been long in the making and finally got around to finish it. If you are thinking about choosing a technology for your next web application, be sure to read this first!

https://www.wimdeblauwe.com/blog/2024/12/31/problems-i-no-longer-have-by-using-server-side-rendering/

Problems I no longer have by using Server-side rendering

I really like to use Spring Boot, Thymeleaf and htmx for a productive web application stack. However, most of my day-to-day work involves writing REST API backends (Well, JSON Data APIs really) for Angular or React frontends. During that work, I sometimes can’t help but think β€œWe would not have this issue we are discussing now if we had used server-side rendering instead of a JavaScript Single Page Application.”. This blog explains some of those thoughts in more detail.

πŸ“Ί New YouTube video about ttcli - a CLI to generate a Spring Boot with Thymeleaf project

See https://youtu.be/9yX9CTTkqh8

Generate Spring Boot with Thymeleaf applications using ttcli

YouTube