Einführung in die Spring Boot CLI

1. Einleitung

Spring Boot CLI ist eine Befehlszeilenabstraktion, mit der wir Spring-Mikrodienste, die als Groovy-Skripte ausgedrückt werden, problemlos ausführen können . Es bietet auch ein vereinfachtes und erweitertes Abhängigkeitsmanagement für diese Dienste.

In diesem kurzen Artikel wird kurz erläutert, wie Sie die Spring Boot-CLI konfigurieren und einfache Terminalbefehle ausführen, um vorkonfigurierte Mikrodienste auszuführen .

Für diesen Artikel verwenden wir Spring Boot CLI 2.0.0.RELEASE. Die neueste Version von Spring Boot CLI finden Sie bei Maven Central.

2. Einrichten der Spring Boot CLI

Eine der einfachsten Möglichkeiten zum Einrichten der Spring Boot CLI ist die Verwendung von SDKMAN. Installations- und Installationsanweisungen für SDKMAN finden Sie hier.

Führen Sie nach der Installation von SDKMAN den folgenden Befehl aus, um Spring Boot CLI automatisch zu installieren und zu konfigurieren:

$ sdk install springboot

Führen Sie den folgenden Befehl aus, um die Installation zu überprüfen:

$ spring --version

Wir können Spring Boot CLI auch durch Kompilieren aus dem Quellcode installieren, und Mac-Benutzer können vorgefertigte Pakete von Homebrew oder MacPorts verwenden. In den offiziellen Dokumenten finden Sie alle Installationsoptionen.

3. Allgemeine Terminalbefehle

Die Spring Boot CLI bietet sofort einige nützliche Befehle und Funktionen. Eine der hilfreichsten Funktionen ist Spring Shell, die Befehle mit dem erforderlichen Spring- Präfix umschließt.

Um die eingebettete Shell zu starten , führen wir Folgendes aus:

spring shell

Von hier aus können wir die gewünschten Befehle direkt eingeben, ohne das Schlüsselwort spring vorab auszusetzen (da wir uns jetzt in der Spring Shell befinden).

Zum Beispiel können wir die aktuelle Version der laufenden CLI anzeigen, indem wir Folgendes eingeben:

version

Einer der wichtigsten Befehle besteht darin, Spring Boot CLI anzuweisen, ein Groovy-Skript auszuführen:

run [SCRIPT_NAME].groovy

Die Spring Boot-CLI leitet die Abhängigkeiten entweder automatisch ab oder unter Berücksichtigung der korrekt bereitgestellten Anmerkungen. Danach wird ein eingebetteter Webcontainer und eine eingebettete App gestartet.

Schauen wir uns die Verwendung des Groovy-Skripts mit Spring Boot CLI genauer an!

4. Wesentliche Groovy-Skripte

Groovy und Spring werden mit der Spring Boot-CLI zusammengeführt, damit leistungsstarke, leistungsfähige Mikrodienste in Groovy-Bereitstellungen mit nur einer Datei schnell per Skript erstellt werden können .

Für die Unterstützung von Anwendungen mit mehreren Skripten sind normalerweise zusätzliche Build-Tools wie Maven oder Gradle erforderlich.

Im Folgenden werden einige der häufigsten Anwendungsfälle für Spring Boot CLI behandelt, wobei komplexere Setups für andere Artikel reserviert werden.

Eine Liste aller von Spring unterstützten Groovy-Anmerkungen finden Sie in den offiziellen Dokumenten.

4.1. @Greifen

Die @Grab Annotation und Groovy Java-artige Import - Klauseln ermöglichen einfaches Abhängigkeitsmanagement und Injektion .

Tatsächlich abstrahieren, vereinfachen und enthalten die meisten Anmerkungen automatisch die erforderlichen Importanweisungen. Auf diese Weise können wir mehr Zeit damit verbringen, über die Architektur und die zugrunde liegende Logik der Dienste nachzudenken, die wir bereitstellen möchten.

Schauen wir uns an, wie die Annotation @Grab verwendet wird :

package org.test @Grab("spring-boot-starter-actuator") @RestController class ExampleRestController{ //... }

Wie wir sehen können, ist der Spring-Boot-Starter-Aktuator vorkonfiguriert und ermöglicht eine prägnante Skriptbereitstellung, ohne dass eine angepasste Anwendung oder Umgebungseigenschaften, XML oder eine andere programmatische Konfiguration erforderlich sind, obwohl jedes dieser Dinge bei Bedarf angegeben werden kann.

Die vollständige Liste der @ Grab- Argumente, die jeweils eine Bibliothek zum Herunterladen und Importieren angeben, finden Sie hier.

4.2. @Controller, @RestController und @EnableWebMvc

Um die Bereitstellung weiter zu beschleunigen, können wir alternativ die von Spring Boot CLI bereitgestellten „Grab-Hinweise“ verwenden, um automatisch auf korrekte Abhängigkeiten für den Import zu schließen .

Im Folgenden werden einige der häufigsten Anwendungsfälle erläutert.

Zum Beispiel können wir die bekannten Annotationen @Controller und @Service verwenden, um schnell einen Standard-MVC-Controller und -Dienst zu erstellen :

@RestController class Example { @Autowired private MyService myService; @GetMapping("/") public String helloWorld() { return myService.sayWorld(); } } @Service class MyService { public String sayWorld() { return "World!"; } }

Spring Boot CLI unterstützt alle Standardkonfigurationen für Spring Boot. Wir können also, dass unsere Groovy-Apps automatisch von ihren üblichen Standardpositionen auf statische Ressourcen zugreifen.

4.3. @ EnableWebSecurity

Um unserer App Spring Boot Security-Optionen hinzuzufügen , können wir die Annotation @EnableWebSecurity verwenden , die dann automatisch von Spring Boot CLI heruntergeladen wird.

Im Folgenden wird ein Teil dieses Prozesses mithilfe der Spring-Boot-Starter-Sicherheitsabhängigkeit abstrahiert , die die Annotation @EnableWebSecurity unter der Haube nutzt :

package bael.security @Grab("spring-boot-starter-security") @RestController class SampleController { @RequestMapping("/") public def example() { [message: "Hello World!"] } } 

For more details on how to protect resources and handle security, please check out the official documentation.

4.4. @Test

To set up a simple JUnit test, we can add the @Grab(‘junit') or @Test annotations:

package bael.test @Grab('junit') class Test { //... }

This will allow us to execute JUnit tests easily.

4.5. DataSource and JdbcTemplate

Persistent data options can be specified including DataSource or JdbcTemplate without explicitly using the @Grab annotation:

package bael.data @Grab('h2') @Configuration @EnableWebMvc @ComponentScan('bael.data') class DataConfig { @Bean DataSource dataSource() { return new EmbeddedDatabaseBuilder() .setType(EmbeddedDatabaseType.H2).build(); } }

By simply using familiar Spring bean configuration conventions, we've grabbed the H2 embedded database and set it as the DataSource.

5. Custom Configuration

Es gibt zwei Möglichkeiten, einen Spring Boot-Mikrodienst mithilfe der Spring Boot-CLI zu konfigurieren:

  1. Wir können unseren Terminalbefehlen Argumentparameter hinzufügen
  2. Wir können eine angepasste YAML-Datei verwenden, um eine Anwendungskonfiguration bereitzustellen

Spring Boot durchsucht das Verzeichnis / config automatisch nach application.yml oder application.properties

├── app ├── app.groovy ├── config ├── application.yml ... 

Wir können auch einrichten:

├── app ├── example.groovy ├── example.yml ...

Eine vollständige Liste der Anwendungseigenschaften finden Sie hier bei Spring.

6. Fazit

Damit ist unser kurzer Überblick über Spring Boot CLI abgeschlossen! Weitere Informationen finden Sie in den offiziellen Dokumenten.

Und wie immer finden Sie den Quellcode für diesen Artikel auf GitHub.