Einführung in Spring Boot CLI

Einführung in Spring Boot CLI

1. Einführung

Die Spring Boot-CLI istcommand-line abstraction that allows us to easily run Spring micro-services expressed as Groovy scripts. Es bietet auch ein vereinfachtes und erweitertes Abhängigkeitsmanagement für diese Dienste.

Dieser kurze Artikel wirft einen kurzen Blick aufhow to configure Spring Boot CLI and execute simple terminal commands to run pre-configured micro-services.

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

2. Einrichten der Spring Boot-CLI

Eine der einfachsten Methoden zum Einrichten der Spring Boot-CLI ist die Verwendung von SDKMAN. Installations- und Installationsanweisungen für SDKMAN finden Sie unterhere.

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 vonHomebrew oderMacPorts verwenden. Alle Installationsoptionen finden Sie in den offiziellendocs.

3. Allgemeine Terminalbefehle

Spring Boot CLI bietet verschiedene nützliche Befehle und Funktionen, die sofort einsatzbereit sind. Eine der hilfreichsten Funktionen ist Spring Shell, die Befehle mit dem erforderlichen Präfixspringumschließt.

Zustart the embedded shell führen wir aus:

spring shell

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

Zum Beispiel können wirdisplay the current version der laufenden CLI durch Eingabe von:

version

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

run [SCRIPT_NAME].groovy

Spring Boot CLI leitet die Abhängigkeiten entweder automatisch ab oder unter Berücksichtigung der korrekt angegebenen 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 groovige Skripte

Groovy und Spring kommen zusammen mit Spring Boot CLI zuallow powerful, performant micro-services to be quickly scripted in single-file Groovy deployments.

Die Unterstützung von Anwendungen mit mehreren Skripten erfordert normalerweise zusätzliche Build-Tools wieMaven oderGradle.

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 offiziellendocs.

4.1. @Grab

Die Annotation@Grab und die Java-artigenimport-Klauseln von Groovy ermöglicheneasy dependency management and injection.

Tatsächlich extrahieren, vereinfachen und enthalten die meisten Annotationen automatisch die erforderlichen Importanweisungen. Dies ermöglicht es uns, mehr Zeit mit dem Nachdenken über die Architektur und die zugrunde liegende Logik der Dienste zu verbringen, die wir bereitstellen möchten.

Schauen wir uns an, wie die Annotation von@Grabverwendet wird:

package org.test

@Grab("spring-boot-starter-actuator")

@RestController
class ExampleRestController{
  //...
}

Wie wir sehen können,spring-boot-starter-actuator comes pre-configured allowing for succinct script deployment without requiring a customized application or environmental properties, XML, or other programmatic configuration, obwohl jedes dieser Dinge bei Bedarf angegeben werden kann.

Die vollständige Liste der Argumente von@Grab, die jeweils eine Bibliothek zum Herunterladen und Importieren angeben, isthere verfügbar.

4.2. @Controller, @RestController, und@EnableWebMvc

Um die Bereitstellung weiter zu beschleunigen, können wir alternativutilize Spring Boot CLI’s provided “grab hints” to automatically infer correct dependencies to import verwenden.

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

Zum Beispiel können wir die bekannten Annotationen@Controller und@Service zuquickly scaffold a standard MVC controller and service verwenden:

@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 ihrem gewohnten Standardspeicherort auf statische Ressourcen zugreifen.

4.3. @EnableWebSecurity

Füradd Spring Boot Security options to our app können wir die Annotation@EnableWebSecurity verwenden, die dann automatisch von der Spring Boot CLI heruntergeladen wird.

Im Folgenden wird ein Teil dieses Prozesses anhand der Abhängigkeit vonspring-boot-starter-securityabstrahiert, die die Annotation von@EnableWebSecurityunter der Haube nutzt:

package bael.security

@Grab("spring-boot-starter-security")

@RestController
class SampleController {

    @RequestMapping("/")
    public def example() {
        [message: "Hello World!"]
    }
}

Weitere Informationen zum Schutz von Ressourcen und zum Umgang mit Sicherheit finden Sie in den offiziellendocumentation.

4.4. @Test

Zuset up a simple JUnit test können wir die Anmerkungen@Grab(‘junit') oder@Test hinzufügen:

package bael.test

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

Auf diese Weise können wir JUnit-Tests problemlos ausführen.

4.5. DataSource undJdbcTemplate

Persistente Datenoptionen können angegeben werden, einschließlichDataSource oderJdbcTemplatewithout 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 haben wir die eingebettete H2-Datenbank abgerufen und alsDataSource festgelegt.

5. Benutzerdefinierte Konfiguration

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/configautomatisch nachapplication.yml oderapplication.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 inhere bei Spring.

6. Fazit

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

Und wie üblich ist der Quellcode für diesen Artikelover on GitHub.