English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Spring Boot 1.3 предоставляет еще один модуль под названием Spring Boot DevTools. DevTools означает Инструмент разработчика .Цель этого модуля - пытаться и сокращать время разработки при использовании приложений Spring Boot. Spring Boot DevTools принимает изменения и перезапускает приложение.
Мы можем реализовать DevTools в нашем проекте, добавив следующие зависимости в файл pom.xml.
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> <scope>runtime</scope> </dependency>
Spring Boot DevTools предоставляет следующие функции:
по умолчанию для свойств автоматический перезапуск LiveReload удаленный туннель отладки удаленный обновление и перезапуск
по умолчанию для свойств: : Spring Boot предоставляет технологию шаблонов Thymeleaf в котором содержатся свойства spring.thymeleaf.cache。Кэшировать и позволять нам обновлять страницы без перезапуска приложения. Но настройка этих свойств всегда вызывает некоторые проблемы в процессе разработки.
При использовании модуля spring-boot-devtools не нужно устанавливать свойства. В процессе разработки шаблонов Thymeleaf, Freemarker, Groovy автоматически отключается.
Автоматический перезапуск: Автоматический перезапуск означает перезагрузку Java классов и их конфигурацию на сервере. После внесения изменений на сервере они динамически развертываются, сервер перезапускается и загружается измененный код. Это主要用于 приложений, основанных на микросервисах. Spring Boot использует дватипа классового загрузчика:
Ненадежные классы (два трети) загружены вбазовый классовый загрузчик. Мы активно разрабатываемые классы загружены вв классовом загрузчике перезапуска.
при перезапуске приложения классовый загрузчик обновляется и заменяется новым классом. Поэтому базовый классовый загрузчик всегда доступен и заполнен.
Мы можем использовать атрибут spring.devtools.restart.enabled установлен на для отключения автоматического перезапуска сервера. Ошибки.
DevTools всегда отслеживает ресурсы классового пути. Единственным способом запустить перезапуск - это обновить классовый путь. DevTools требует отдельного приложения классового загрузчика для нормальной работы. По умолчанию, процесс Maven-приложения. Автоматический перезапуск с LiveReload работает хорошо вместе. DevTools зависит от挂钩а закрытия контекста приложения для его отключения во время перезапуска.
LiveReload: Модуль Spring Boot DevTools включает модуль под названием встроенным сервером LiveReload.пока мы вносим изменения в нее, приложение автоматически запускает обновление браузера. Ресурсы. Это также называется автоматическая обновление.
Обратите внимание: мы можем настроить атрибут spring.devtools.livereload, чтобы отключить LiveReload. ВключитьДля false.
Она предоставляет расширения браузеров для Chrome, Firefox и Safari. По умолчанию, LiveReload включен. LiveReload работает по следующим путям:
/META-INF/maven /META-INF/resources /resources /static /public /template
Мы также можем отключить автоматическую перезагрузку в браузере, исключив указанные пути. Например:
spring.devtools.restart.exclude=public/**, static/**, templates/**
Мы можем использовать атрибут spring.devtools.restart.additional-paths для просмотра других дополнительных путей.например:
spring.devtools.restart.additional-paths=/path-to-folder
Если мы хотим исключить другие пути и сохранить mặc địnhные пути, используйте атрибут spring.devtools.restart.additional-exclude.например:
spring.devtools.restart.additional-exclude=styles/**
Мы можем запускать один сервер LiveReload за один раз. Убедитесь, что перед запуском приложения нет других серверов LiveReload, работающих. Если мы запускаем несколько приложений из IDE, то он поддерживает только первый LiveReload.
Удаленный туннель отладки: Spring Boot может напрямую туннелировать JDWP (Java Debug Wire Protocol) в приложение через HTTP.Он даже может部署 приложение на Интернет-провайдера Cloud, который公开 только порты 80 и 443.
Удаленное обновление и перезапуск: Другая хитрость, предоставляемая DevTools: он поддерживает удаленные приложения Обновлениеи Перезапуск.он监视本地 путь к классам изменений и推送 их на удаленный сервер, затем перезапускает.Мы также можем использовать эту функцию с LiveReload.
Из-за частых перезапусков автоматический перезапуск иногда может замедлить время разработки.Чтобы решить эту проблему, мы можем использовать Файл триггера.. SpringBoot监视触发文件并检测文件中的更改。Оно перезапускает сервер и перезагружает все предыдущие изменения.
Мы можем добавить атрибут spring.devtools.restart.trigger-file реализует файл триггера в нашем приложении.внутренний или внешний. Например:
spring.devtools.restart.trigger-file=c:/workspace-sts-3.9.9.RELEASE/restart-trigger.txt
Шаг 1: Используйте Spring Initializr https://start.spring.io/
Шаг 2: предоставляет группаимя и компонента идентификатор. Мы предоставляем имя группы com.w3codebox и идентификатор компонента spring-boot-devtools-example
Шаг 3: Добавить следующие зависимости: spring-boot-starter-web и spring-boot-devtools .
Шаг 4: Нажмите СозданиеКнопка. Она будет загружать проект Jar Файл.
Шаг 5: Извлечь файл Jar.
Шаг 6: Импортируйте папку в STS.
Файл -> Импорт -> Существующий Maven-проект -> Перейти -> Выберите папку spring-boot-devtools-example -> Готово
После успешного импорта мы можем увидеть следующие каталоги в разделе Package Explorer в STS.
Шаг 7: Открыть SpringBootDevtoolsExampleApplication.java И запустите его как Java-приложение.
Затем, в приложении выполните любые изменения (редактирование или удаление некоторых файлов или кода), а затем сохраните внесенные изменения. После сохранения изменений сервер перезапустится и получит изменения.