Spring Debugger
A Spring-aware debugging experience for IntelliJ IDEA Community. Explyt attaches a lightweight javaagent to your debug session and enriches the debugger with information the standard debugger cannot see: the live application context, the active transaction, and the runtime values behind your configuration properties.
Enabling it
Spring debug mode is on by default. You can toggle it from the Explyt Spring tool window with Enable Spring Debug / Disable Spring Debug, or from Settings → Tools → Explyt Spring → Spring Boot with the Enable Spring debug mode checkbox.
Your build and run configuration are patched automatically to attach the agent, and reverted when the session ends.
What you get
The Spring context in the debugger tree
While stopped at a breakpoint, the Variables tree gains Explyt nodes showing all active beans from the current context. Beans that are not part of the active context are visually marked, which makes context membership obvious at a glance.
Active transaction
The transaction in effect at the current breakpoint is displayed in the debugger tree — useful when you are trying to work out whether you are inside the transaction you expected, and with which propagation.
Evaluate Expression helpers
The Evaluate dialog gains special variables that give you direct access to the running container:
| Expression | Returns |
|---|---|
Explyt.context | The live ApplicationContext. |
Explyt.getBeanFactory() | The bean factory. |
Explyt.getEnvironment() | The environment, including resolved property sources. |
From there you can call any bean method on the running application. For example, evaluate Explyt.context.getBean(OrderService.class).findAll() to exercise a service without writing a scratch file.
Running Spring Data repository methods
Repository methods get inline run markers during a debug session. Clicking one pre-fills the Evaluate Expression dialog with the call, so you can execute a query against the live application and inspect the result immediately.
Runtime property values as Code Vision
Open a .properties or .yml file during an Explyt debug session and each key shows its actual runtime value inline, labelled "Explyt: property runtime value".
This resolves the question that configuration bugs usually come down to: not what the file says, but which PropertySource won. The hint identifies the source that supplied the value, so profile overrides, environment variables, and command-line arguments stop being guesswork.
Remote debugging
You can attach to an already-running JVM that was started with JDWP plus the Explyt javaagent. The remote session supports breakpoints, runtime PropertySource resolution, the BeanDefinition view, transaction information, and automatic web URL detection.
Further reading
See also: Native Context Mode · Tool windows · Troubleshooting