Zum Hauptinhalt springen

Spring Boot Windows Service: Erstellen und Verwalten von Diensten unter Windows

Spring Boot ist ein leistungsfähiges Werkzeug zum Erstellen von Java-Anwendungen. Es bietet praktische Funktionen zum Entwickeln, Testen und Bereitstellen von Anwendungen sowie zur Integration in verschiedene Frameworks und Bibliotheken. Eine der interessanten Funktionen von Spring Boot besteht darin, einen Windows-Dienst zu erstellen, mit dem Sie eine Anwendung als Dienst auf einem Windows-Betriebssystem ausführen können.

Windows-Dienste sind spezielle Programme, die im Hintergrund ausgeführt und ausgeführt werden können, unabhängig davon, ob ein Benutzer angemeldet ist oder nicht. Wenn Sie einen Windows-Dienst erstellen, können Sie eine Anwendung mit für die Ausführung als Dienst optimierten Einstellungen starten und steuern und eine benutzerfreundliche Oberfläche zum Verwalten des Diensts und seiner Konfiguration bereitstellen.

Spring Boot ermöglicht die Integration mit Windows-Diensten über die WinSW-Bibliothek. Mit dieser Bibliothek können Sie eine ausführbare Datei erstellen .eine EXE, die eine Anwendung als Windows-Dienst ausführt und verwaltet. Darüber hinaus bietet WinSW die Möglichkeit, die Einstellungen für den Dienststart, die Protokollierung und das Arbeiten mit Ereignisprotokollen zu konfigurieren und den Dienst automatisch neu zu starten, wenn der Dienst abstürzt.

Wenn Sie Spring Boot und WinSW verwenden, wird das Erstellen und Verwalten eines Windows-Diensts für den Entwickler so einfach und einfach wie möglich. In diesem Artikel werden wir uns den ausführlichen Prozess zum Erstellen eines Windows-Diensts mit Spring Boot und WinSW ansehen und einige Möglichkeiten zum Verwalten und Konfigurieren des Diensts betrachten.

Erstellen und Verwalten von Diensten unter Windows mit Spring Boot

Spring Boot bietet die Möglichkeit, Anwendungen zu erstellen, die als Dienste auf einem Windows-Betriebssystem ausgeführt werden können. Auf diese Weise können Sie das Starten und Beenden einer Anwendung als normaler Betriebssystemdienst steuern und steuern.

Führen Sie die folgenden Schritte aus, um einen Dienst unter Windows mit Spring Boot zu erstellen:

1. Erstellen eines Spring Boot-Projekts

Zuerst müssen Sie ein Projekt basierend auf Spring Boot erstellen. Dazu können Sie eine integrierte Entwicklungsumgebung wie IntelliJ IDEA oder Eclipse verwenden. Oder Sie können ein Befehlszeilentool wie Maven oder Gradle verwenden.

Es ist wichtig sicherzustellen, dass das Projekt alle erforderlichen Abhängigkeiten enthält, um mit dem Windows-Betriebssystem zu arbeiten. Dazu können Sie der pom-Datei eine Abhängigkeit vom Modul `spring-boot-starter` hinzufügen.xml`:

2. Erstellen einer Dienstklasse

Nachdem Sie das Projekt erstellt haben, müssen Sie eine Klasse erstellen, die den Windows-Betriebssystemdienst darstellt. Dazu müssen Sie eine neue Klasse erstellen und sie mit der Annotation `@SpringBootApplication` kommentieren. Diese Annotation kombiniert andere Annotationen wie `@Configuration`, `@EnableAutoConfiguration` und `@ComponentScan` und ermöglicht es Spring Boot, die Anwendung automatisch zu konfigurieren und auszuführen.

public class MyService

public static void main(String[] args)

3. Erstellen eines Dienstinstallationsskripts

Um den Dienst unter Windows zu installieren, müssen Sie ein Installationsskript erstellen. Dazu können Sie das Befehlszeilentool `sc' verwenden.exe', die Windows zum Erstellen und Verwalten von Diensten bereitstellt.

Das Skript muss einen Befehl zum Installieren des Dienstes enthalten, der den vollständigen Pfad zur ausführbaren Datei der Dienstklasse angibt:

sc create MyService binPath= "C:\Path\To\MyService.jar"

Hier ist `MyService' der Name des Dienstes und `C:\Path\To\MyService .jar' ist der Pfad zur ausführbaren Datei des Spring Boot-Projekts.

4. Verwalten des Dienstes

Nachdem Sie den Dienst installiert haben, können Sie ihn mithilfe von Befehlen des Windows-Betriebssystems verwalten. Sie können den Befehl verwenden, um den Dienst zu starten:

sc start MyService

Und um den Dienst zu beenden, geben Sie den Befehl ein:

sc stop MyService

Sie können den Dienst auch so konfigurieren, dass er beim Starten des Betriebssystems automatisch gestartet wird, indem Sie den Befehl verwenden:

sc config MyService start= auto

Dies waren die grundlegenden Schritte zum Erstellen und Verwalten von Diensten auf einem Windows-Betriebssystem mit Spring Boot. Jetzt können Sie Dienste basierend auf Ihren Spring Boot-Anwendungen erstellen und bereitstellen, um die Bereitstellung und Verwaltung zu vereinfachen.

Installieren und Konfigurieren eines Spring Boot-basierten Dienstes

Wenn Sie einen Spring Boot-basierten Dienst installieren und konfigurieren, können Sie eine Anwendung als Dienst auf einem Windows-Betriebssystem ausführen. Dazu müssen mehrere Schritte ausgeführt werden.

1. Erstellen einer ausführbaren JAR-Datei: Verwenden Sie das Maven- oder Gradle-Build-Tool, um die JAR-Datei Ihrer Spring Boot-Anwendung zu erstellen.

2. WinSW installieren: WinSW ist ein Paket zum Installieren und Verwalten von Windows-Diensten. Laden Sie das Archiv von WinSW herunter und entpacken Sie es an einem geeigneten Ort auf Ihrem Computer.

3. Erstellen einer Konfigurationsdatei: Suchen Sie im Ordner WinSW nach der Vorlagendatei `wrapper'.conf.xml' und erstellen Sie eine Kopie der Datei mit einem neuen Namen, z. B. `myapp.conf.xml`. Passen Sie in dieser Datei den Pfad zur JAR-Datei Ihrer Anwendung an, wie im folgenden Beispiel gezeigt:

myappjava-jar path/to/your/app.jarlogresetautojvmkillNT Authority\NetworkService

4. Dienst installieren: Öffnen Sie eine Eingabeaufforderung im Ordner WinSW und führen Sie den Befehl `winsw install myapp` aus, um den Dienst mit dem Namen `myapp` zu installieren. Wenn die Installation erfolgreich war, wird die Meldung "The service 'myapp' has been installed" angezeigt.

5. Dienst starten und verwalten: Nachdem Sie den Dienst installiert haben, können Sie ihn mit dem Befehl `winsw start myapp` starten. Verwenden Sie den Befehl `winsw stop myapp`, um den Dienst zu beenden. Sie können den Dienst auch mit dem Befehl `winsw restart myapp` neu starten.

Ihre Spring Boot-Anwendung wird jetzt als Dienst auf einem Windows-Betriebssystem ausgeführt. Sie können es wie jeden anderen Dienst über die Eingabeaufforderung oder die Windows-Systemsteuerung für Dienste verwalten.

Verwalten eines Dienstes über die Befehlszeile

In diesem Abschnitt erfahren Sie, wie Sie den Spring Boot-Dienst über die Befehlszeile auf einem Windows-Betriebssystem verwalten.

Um den Dienst zu verwalten, müssen Sie eine Eingabeaufforderung mit Administratorrechten öffnen. Dazu können Sie die folgenden Schritte ausführen:

  1. Drücken Sie die Win-Taste, um das Startmenü zu öffnen.
  2. Geben Sie "cmd" in das Suchfeld ein.
  3. Klicken Sie mit der rechten Maustaste auf Eingabeaufforderung und wählen Sie Als Administrator ausführen.

Nachdem die Eingabeaufforderung mit Administratorrechten geöffnet wurde, können Sie den Dienst mit den folgenden Befehlen verwalten:

  • sc create serviceName binPath= "C:\path\to\executable.jar" - Erstellt einen Dienst mit dem angegebenen Namen und Pfad zur ausführbaren Datei.
  • sc start serviceName - Startet den Dienst mit dem angegebenen Namen.
  • sc stop serviceName - Beendet den Dienst mit dem angegebenen Namen.
  • sc delete serviceName - Löscht den Dienst mit dem angegebenen Namen.
  • sc query serviceName - Überprüft den Dienststatus mit dem angegebenen Namen.

Wenn Sie diese Befehle ausführen, müssen Sie "serviceName" durch den Namen Ihres Dienstes ersetzen, und "C:\path\to\executable .jar" ist der Pfad zur ausführbaren Datei Ihres Dienstes.

Jetzt wissen Sie, wie Sie den Spring Boot-Dienst über die Befehlszeile auf einem Windows-Betriebssystem verwalten.

Vereinfachte Verwaltung des Dienstes über die Webschnittstelle

Zusätzlich zur Verwendung der Befehlszeile oder des Dienstverwaltungstools unter dem Windows-Betriebssystem können Sie auch die Webschnittstelle verwenden, um einen mit Spring Boot erstellten Dienst einfach zu verwalten.

Dazu können Sie eine einfache Webseite erstellen, die Schaltflächen oder Links zum Starten, Stoppen und Neustarten des Dienstes enthält. Möglicherweise benötigen Sie auch Eingabefelder für Diensteinstellungen oder -einstellungen. Nachdem Sie Ihre Spring Boot-Anwendung im Webdienstmodus ausgeführt haben, können Sie von jedem Computer im Netzwerk aus auf diese Seite zugreifen, indem Sie eine Verbindung mit der URL Ihrer Anwendung herstellen.

Normalerweise kommuniziert die Webschnittstelle über eine API mit Ihrer Anwendung. Eine API kann Methoden zum Ausführen verschiedener Aktionen mit einem Dienst enthalten - Starten, Stoppen, Neu Laden usw. Die Webschnittstelle ruft die entsprechenden Methoden auf der Grundlage Ihrer auf einer Webseite durchgeführten Aktionen auf.

Um eine Webschnittstelle für die Verwaltung eines Dienstes mit Spring Boot zu erstellen, können Sie eines von vielen Frameworks und Bibliotheken verwenden, um Webanwendungen zu entwickeln. Einige der beliebtesten Frameworks, die Sie in Betracht ziehen können, sind Spring MVC, Thymeleaf, Angular, React und Vue.js.

Achten Sie beim Entwerfen einer Webschnittstelle zum Verwalten eines Dienstes auf Sicherheit. Stellen Sie sicher, dass der Zugriff auf die Webseite und die API nur auf autorisierte Benutzer beschränkt ist. Erwägen Sie die Verwendung von Authentifizierungs- und Autorisierungsmechanismen wie Basic Auth, OAuth oder JWT, um den Zugriff auf Ihre Webschnittstelle zu steuern. Außerdem sollten Sie Maßnahmen ergreifen, um sich vor Angriffen wie CSRF und XSS zu schützen, um die Sicherheit Ihrer Anwendung zu gewährleisten.

Das Erstellen einer Webschnittstelle für die Verwaltung eines Dienstes mit Spring Boot und die Integration in Ihre Anwendung kann die Verwaltung des Dienstes erheblich vereinfachen und für den Benutzer benutzerfreundlicher machen.