Loslegen
Javaneer
Zurück zur Stufe
Modul 1·Spring-Boot-Grundlagen

DevTools & die Inner Loop

Schnelle Neustarts, LiveReload und die Entwicklerfeatures, die die Boot-Rückkopplungsschleife schnell machen.

10 Min. LesezeitAnfänger

Deutsche Übersetzung in Arbeit

Diese Lektion ist noch nicht ins Deutsche übersetzt und wird daher auf Englisch angezeigt. Der Rest der Seite ist vollständig lokalisiert.

Auf dieser Seite

A tight feedback loop is what makes development feel good: change code, see the result, repeat - fast. Restarting a server by hand after every edit breaks that flow. Spring Boot DevTools exists to keep the loop tight.

Add it

DevTools is a development-only dependency. It's marked optional/developmentOnly so it's automatically excluded from your production jar:

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>

What it gives you

  • Automatic restart - when a classpath file changes, Boot restarts the app. It's far faster than a cold start because it reloads only your classes in a second classloader, while the unchanged framework classes stay loaded.
  • LiveReload - a built-in LiveReload server can auto-refresh your browser when resources change.
  • Sensible dev defaults - DevTools disables caching for template engines and tweaks a few properties so you see changes immediately instead of stale output.
Two classloaders: the stage and the actors

Restarting the whole JVM is like tearing down and rebuilding an entire theatre set between scenes. DevTools keeps the set - the stable framework classes - loaded on a "base" classloader, and only swaps the actors (your changing classes) on a second "restart" classloader. Rebuilding just the cast is far quicker than rebuilding the whole theatre.

Trigger a restart from your IDE

A restart fires when compiled classes change, so in your IDE just build/recompile (save-with-auto-build, or the Build action) and DevTools picks it up. Editing a file without compiling won't trigger it - it watches the classpath, not your source folder.

Development only - by design

Never rely on DevTools in production. Its restart magic and disabled caches are development conveniences; the optional/developmentOnly scoping keeps it out of the packaged jar automatically, so production runs lean.

Why is DevTools' automatic restart faster than a normal cold start?

Key takeaways

  • Spring Boot DevTools keeps the develop-run-observe loop fast.
  • Automatic restart reloads only your changed classes via a second classloader, so it's much faster than a cold start.
  • It also offers LiveReload and disables template caching so you see changes immediately.
  • Restart triggers on compiled-class changes - recompile/build in your IDE to fire it.
  • DevTools is development-only and is automatically excluded from the production jar via optional/developmentOnly scoping.
War diese Lektion hilfreich?
Diese Seite auf GitHub bearbeiten