Our Blog
Sharing Our Experiences
- Java project & consultancy
- Cloud Native Development
- AI & IoT
Faros Team
Spring Debugger: Diepgaand Debuggen van Spring Boot Applicaties met IntelliJ
- by Faros Team
- -
- - Development, Spring
In de wereld van Spring Boot development is debugging vaak een frustrerende ervaring. Je zit met honderden beans, complexe configuraties, en runtime gedrag dat niet altijd transparant is. Tijdens de Happy Hour sessie van juli 2025 gaf Ruben Schroyen een hands-on introductie tot de Spring Debugger plugin voor IntelliJ IDEA Ultimate. In deze blog duiken we dieper in de technische meerwaarde van deze tool.
Waarom een aparte Spring Debugger?
De Spring Debugger is een losstaande plugin voor IntelliJ IDEA Ultimate. Het doel is om sneller te kunnen releasen dan de IntelliJ release cycle toelaat. Hoewel de plugin afhankelijk blijft van de IntelliJ Debugger API, biedt deze aanpak meer flexibiliteit en ruimte voor innovatie.
De plugin ondersteunt debugging voor:
Spring Boot applicaties
Unit tests (JUnit, TestNG)
Maven/Gradle builds
Remote JVM debugging
Features
Feature 1: Configuratie-inzicht tijdens runtime
Een van de grootste frustraties bij Spring is het achterhalen van welke configuratie effectief actief is. De Spring Debugger maakt het mogelijk om:
Actieve
@Configuration-klassen te inspecterenDe status van beans (geladen, gemockt, niet geladen) visueel te bekijken
Snel te navigeren naar de bron van properties en beans
Voorbeeld: Je hebt een @ConditionalOnProperty op een bean, maar die wordt niet geïnjecteerd. De debugger toont dat de bean transparant is (niet geladen) en je kan meteen de reden achterhalen.
Feature 2: Evaluatie van properties en beans
Tijdens het debuggen kun je via de Evaluate Expression tool in IntelliJ toegang krijgen tot alle Spring beans en properties, zelfs als ze niet in scope zijn van de huidige stackframe.
Voorbeeld: Je zit in een serviceklasse en wil weten welke database-URL actief is. Je evalueert environment.getProperty("spring.datasource.url") en ziet meteen de waarde én de bronconfiguratie.
Feature 3: Debuggen van transacties
De plugin laat je toe om:
Het type transactie te inspecteren (
REQUIRED,REQUIRES_NEW, …)De oorsprong van de transactie te achterhalen (welke methode heeft ze gestart?)
De status van entiteiten in de huidige persistence context te bekijken
Voorbeeld: Je krijgt een LazyInitializationException bij het ophalen van een User.getRoles(). De debugger toont dat de roles-collectie niet in de huidige transactie geladen is, en dat de sessie al gesloten is.
Feature 4: Datasource discovery
De plugin detecteert automatisch datasources, ook wanneer je werkt met Testcontainers of dynamisch geconfigureerde datasources. Je kan deze datasources live inspecteren en refreshen.
Voorbeeld: Tijdens een integratietest met een PostgreSQL Testcontainer zie je dat de datasource correct geïnitialiseerd is, en je kan de connecties live volgen.
Feature 5: Bean visualisatie
Beans worden visueel weergegeven met kleurcodes:
Groen: geladen
Transparant: niet geladen
Geel: gemockt (bijvoorbeeld via Mockito)
Je kan ook filteren op bean types, scopes, en qualifiers.
Voorbeeld: Je hebt een @MockBean in een testklasse. De debugger toont dat deze bean geel is, en je ziet meteen dat de echte implementatie overschreven werd.
Andere handige toepassingen
Navigatie naar de bron van properties: Je kan klikken op een property zoals
spring.jpa.show-sqlen meteen naar de YAML of properties file springen waar die gedefinieerd is.Inspectie van
@Valueinjecties: Zie welke waarde effectief geïnjecteerd werd in een veld.Debuggen van
@Scheduledof@Asyncmethodes: Omdat deze vaak buiten de standaard call stack vallen, is het handig om via de Spring context alsnog inzicht te krijgen.
Meer leren?
Wil je zelf aan de slag? Hier zijn enkele bronnen:
Wat brengt de toekomst?
De roadmap van de plugin bevat veelbelovende features:
Ondersteuning voor
@CacheabledebuggingEvent tracing
HTTP tracing
Spring Security debugging
Database connection profiling
Conclusie
De Spring Debugger is een krachtige aanvulling op de standaard debugging tools van IntelliJ. Voor developers die werken aan complexe Spring Boot applicaties biedt het een unieke inkijk in de runtime context van je applicatie. Het is een tool die niet alleen bugs helpt oplossen, maar ook je begrip van je eigen applicatie verdiept.
Share this post