Gymterview
junior

Что такое Spring Boot DevTools?

Spring Boot DevTools – модуль для ускорения разработки за счёт автоматической перезагрузки приложения, отключения кэширования и удобных настроек по умолчанию.

Пример
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-devtools</artifactId>
    <scope>runtime</scope>
    <optional>true</optional>
</dependency>

Ключевые возможности

  1. Автоматический рестарт – при изменении файлов приложение перезапускается. DevTools использует два ClassLoader-а: один для неизменяемых зависимостей, другой для классов проекта. Перезагружается только второй
  2. LiveReload – автоматическое обновление страницы в браузере
  3. Отключение кэширования – шаблонизаторы работают без кэша
  4. Расширенное логирование

DevTools автоматически отключается при запуске в production (из JAR или при отсутствии на classpath). Атрибут optional=true гарантирует, что DevTools не попадёт в зависимости других модулей.

На собеседовании: достаточно знать назначение и принцип работы двух ClassLoader-ов. Частая ошибка – не упомянуть, что DevTools автоматически отключается в production.