Ultimativer Leitfaden für Spring Boot DevTools

Der Hauptgrund, warum Spring Boot von der Spring-Community entwickelt wurde, besteht darin, das Packen und Bereitstellen Ihrer Spring-Anwendungen in der Produktion zu vereinfachen. Vor diesem Hintergrund geht Spring Boot davon aus, dass alle beim Start geladenen Standardwerte für die produktionsbereite Anwendung optimiert sind. Beispielsweise ist das Caching von Thymeleaf-Vorlagen standardmäßig aktiviert, was die Leistung in der Produktion verbessert. Diese Einstellungen müssen jedoch deaktiviert werden, damit die Entwicklungsumgebung die Anwendungen effektiv testen kann, wann immer Sie Änderungen am Code vornehmen.

Dieses Tutorial führt Sie durch die verschiedenen Funktionen, die im Devtools-Modul verfügbar sind.

Das Inhaltsverzeichnis für dieses Tutorial:

  • Was sind Spring Boot DevTools?
  • Automatischer Neustart
  • Ressourcen ausschließen
  • Deaktivieren Sie den Neustart
  • Sehen Sie sich „Zusätzliche Pfade“ an
  • Standardeigenschaften
  • Live-Neuladen
  • Zusammenfassung
  • Spring Boot-Entwicklertools seit 1.3.0 verfügbar

    Spring Boot-Entwicklertools seit 1.3.0 verfügbar

    Was sind Spring Boot devTools?

    Spring Boot 1.3 wird mit neuem Modul ausgeliefert spring-boot-devtools. Das Hauptziel dieses Moduls besteht darin, die Entwicklungsgeschwindigkeit zu verbessern, indem einige der Schlüsselfunktionen aktiviert werden, die während der Entwicklungsphase Ihres Projekts wichtig sind. In diesem Tutorial wird erläutert, wie Sie Spring Boot Devtools und verschiedene Optionen verwenden, die als Teil der Spring Boot Devtools verfügbar sind.

    Sie können dieses Modul in Ihre Spring-Boot-Anwendung einbinden, indem Sie das folgende Maven-Snippet hinzufügen:

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

    Für Gradle-Build:

    dependencies {
    compile("org.springframework.boot:spring-boot-devtools")
    }
    

    Sobald Sie die oben genannte Abhängigkeit zur Spring-Boot-Anwendung hinzugefügt haben, werden viele hinzugefügt spring-boot-devtools Merkmale.

    Automatischer Neustart

    Greg L. Turnquist hat Recht, das wahre Juwel von Spring Boot kommt heraus. Wenn Sie Entwickler sind, wissen Sie genau, wie wichtig es ist, die Anwendung automatisch zu laden, wenn sich der Code ändert. Es ist eine der Hauptfunktionen, die seit ihrer Einführung in der Spring-Boot-Anwendung fehlt. Die Devtools-Funktionen sorgen jedoch für einen automatischen Neustart der Anwendung bei allen Codeänderungen.

    Bei Änderungen am Klassenpfad wird die Anwendung automatisch neu gestartet, um die neuen Änderungen zu übernehmen. Das geht ziemlich schnell, wenn ich es in meinem lokalen System getestet habe. Das Spring-Boot-Team hat zwei Klassenlader verwaltet, einen zum Laden der projektspezifischen Klassendateien (die sich häufig ändern) und einen anderen für Bibliotheken von Drittanbietern.

    Bei Änderungen an den Projektdateien startet Spring Boot einen Klassenlader neu, der die projektspezifischen Klassendateien lädt. Da nicht die gesamte Anwendung geladen wird, ist die Geschwindigkeit des Neustarts viel schneller. Wenn Sie Erfahrungen haben, schreiben Sie diese bitte in den Kommentarbereich.

    Automatischer Neustart von Spring Boot DevTools

    Automatischer Neustart von Spring Boot DevTools

    Ressourcen ausschließen

    Wenn der automatische Neustart aktiviert ist, werden alle Dateien im Klassenpfad auf Änderungen überwacht. Wenn jedoch Änderungen an den statischen Dateien wie Vorlagen, CSS usw. vorgenommen werden, ist zum Laden der Ressourcen kein Serverneustart erforderlich. Um dieses Problem zu lösen, können Sie die Dateien unter einem bestimmten Pfad ganz einfach von der Option für den automatischen Neustart ausschließen. Sie können die Ressourcen hinzufügen, die Sie bei Änderungen nicht laden möchten:

    spring.devtools.restart.exclude=/META-INF/resources
    

    Deaktivieren Sie den Neustart

    Sie können die Neustartoption auch deaktivieren, indem Sie Folgendes hinzufügen spring.devtools.restart.enabled Eigentum an die application.properties Datei wie folgt:

    spring.devtools.restart.enabled=false
    

    Das Gute daran ist, dass diese Eigenschaft beim Festlegen sofort wirksam wird und Sie die Spring-Boot-Anwendung nicht manuell stoppen und starten müssen.

    Sehen Sie sich „Zusätzliche Pfade“ an

    Standardmäßig führt die Spring-Boot-Anwendung nur dann einen automatischen Neustart durch, wenn sich die Ressourcen im Klassenpfad ändern. Wenn Sie jedoch den automatischen Neustart für die Ressourcen außerhalb des Klassenpfads aktivieren möchten, können Sie die folgende Eigenschaft verwenden, um die zusätzlichen Pfade beim automatischen Neustart hinzuzufügen.

    spring.devtools.restart.additional-paths=/src
    

    Standardeigenschaften

    Spring Boot unterstützt mehrere Cache-Bibliotheken zur Verbesserung der Leistung. Standardmäßig ist das Vorlagen-Caching von Spring Boot aktiviert, um die Leistung zu verbessern. Dies ist jedoch zum Zeitpunkt der Entwicklung kontraproduktiv. Vor Spring Boot 1.3.0 müssen Entwickler das aktualisieren application.properties Datei zum Deaktivieren des Caches.

    Jetzt wird es geändert. Durch das Hinzufügen der spring-boot-devtoolssind die folgenden Vorlagencaches standardmäßig deaktiviert:

    • spring.thymeleaf.cache=false
    • spring.freemarker.cache=false
    • spring.groovy.template.cache=false
    • spring.velocity.cache=false
    • spring.mustache.cache=false

    Diese Konfigurationen werden in der Datei aktualisiert DevToolsPropertyDefaultsPostProcessor.java

    Live-Neuladen

    spring-boot-devtools beinhaltet den eingebetteten LiveReload-Server. Immer wenn Änderungen am Server vorgenommen werden, wird der Browser eine Aktualisierung auslösen. Sie können die kostenlose Erweiterung für den Live-Reload erhalten Hier.

    Wenn Sie den LiveReload-Server beim Start nicht starten möchten, fügen Sie bitte den folgenden Eintrag hinzu application.properties:

    spring.devtools.livereload.enabled=false
    

    Beachten Sie, dass Sie jeweils nur einen LiveReload-Server ausführen können. Wenn Sie mehrere Anwendungen in Ihrer IDE ausführen, ist LiveReload für den ersten aktiviert.

    Sie können die Startmeldung des LiveReload-Servers in der Konsole sehen. Wenn Sie das einstellen spring.devtools.livereload.enabled Eigentum zu falsedann wird der Server nicht gestartet, wenn Spring Boot die Anwendung initialisiert.

    Spring Boot LiveReload-Server

    Spring Boot LiveReload-Server

    Zusammenfassung

    Ich hoffe, dieses Tutorial bietet gute Informationen darüber, was Spring Boot Devtools sind, welche Funktionen die Devtools bieten und wie man sie verwendet. Auf hohem Niveau ist es ein Zusatzmodul zur Federanwendung zur Verbesserung der Produktivität. Insbesondere die Funktion zum automatischen Neustart ist zur Entwicklungszeit sehr nützlich. Wenn Sie Fragen haben, schreiben Sie diese bitte in den Kommentarbereich.

    Vielen Dank, dass Sie meinen Blog gelesen haben!! Fröhliches Lesen!!

    Kommentar verfassen

    Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

    Nach oben scrollen