Inleiding tot Spring Boot CLI

1. Inleiding

Spring Boot CLI is een opdrachtregel-abstractie waarmee we gemakkelijk Spring-microservices kunnen uitvoeren, uitgedrukt als Groovy-scripts. Het biedt ook vereenvoudigd en verbeterd afhankelijkheidsbeheer voor die services.

Dit korte artikel neemt een korte blik op hoe Spring Boot CLI te configureren en eenvoudige terminalopdrachten uit te voeren om vooraf geconfigureerde microservices uit te voeren.

We gebruiken Spring Boot CLI 2.0.0.RELEASE voor dit artikel. De nieuwste versie van Spring Boot CLI is te vinden op Maven Central.

2. Spring Boot CLI instellen

Een van de gemakkelijkste manieren om Spring Boot CLI in te stellen, is door SDKMAN te gebruiken. Installatie- en installatie-instructies voor SDKMAN zijn hier te vinden.

Voer na het installeren van SDKMAN de volgende opdracht uit om Spring Boot CLI automatisch te installeren en configureren:

$ sdk installeer springboot

Voer de volgende opdracht uit om de installatie te verifiëren:

$ spring --versie

We kunnen Spring Boot CLI ook installeren door vanaf de bron te compileren, en Mac-gebruikers kunnen kant-en-klare pakketten van Homebrew of MacPorts gebruiken. Zie de officiële documenten voor alle installatie-opties.

3. Algemene terminalopdrachten

Spring Boot CLI biedt verschillende handige commando's en functies uit de doos. Een van de handigste functies is Spring Shell, die opdrachten omhult met de nodige voorjaar voorvoegsel.

Naar start de embedded shell, wij rennen:

lente shell

Vanaf hier kunnen we de gewenste opdrachten rechtstreeks invoeren zonder de voorjaar trefwoord (aangezien we nu in spring shell zijn).

We kunnen bijvoorbeeld geef de huidige versie weer van de actieve CLI door te typen:

versie

Een van de belangrijkste opdrachten is om Spring Boot CLI te vertellen om een ​​Groovy-script uit te voeren:

voer [SCRIPT_NAME] .groovy uit

Spring Boot CLI zal ofwel automatisch de afhankelijkheden afleiden of zal dit doen op basis van de correct geleverde annotaties. Hierna start het een ingesloten webcontainer en app.

Laten we eens nader bekijken hoe je het Groovy-script kunt gebruiken met Spring Boot CLI!

4. Essentiële Groovy Scripts

Groovy en Spring komen samen met Spring Boot CLI om zorgen ervoor dat krachtige, performante microservices snel kunnen worden gescript in Groovy-implementaties met één bestand.

Ondersteuning voor applicaties met meerdere scripts vereist meestal extra build-tools zoals Maven of Gradle.

Hieronder behandelen we enkele van de meest voorkomende gebruiksscenario's voor Spring Boot CLI, waarbij we complexere opstellingen reserveren voor andere artikelen.

Raadpleeg de officiële documenten voor een lijst met alle door Spring ondersteunde Groovy-annotaties.

4.1. @Grab

De @Grab annotatie en Groovy's Java-achtige importeren clausules zorgen voor eenvoudig afhankelijkheidsbeheer en injectie.

De meeste annotaties abstraheren, vereenvoudigen en bevatten automatisch de noodzakelijke importinstructies. Hierdoor kunnen we meer tijd besteden aan het nadenken over architectuur en de onderliggende logica van de diensten die we willen inzetten.

Laten we eens kijken hoe u de @Grab annotatie:

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

Zoals we kunnen zien, veer-boot-starter-actuator wordt voorgeconfigureerd geleverd waardoor een beknopte scriptimplementatie mogelijk is zonder dat een aangepaste applicatie of omgevingskenmerken nodig zijn, XML, of een andere programmatische configuratie, hoewel elk van deze dingen indien nodig kan worden gespecificeerd.

De volledige lijst met @Grab argumenten - die elk een bibliotheek specificeren om te downloaden en te importeren - zijn hier beschikbaar.

4.2. @Controller, @RestController, en @EnableWebMvc

Om de inzet verder te versnellen, kunnen we als alternatief gebruik de door Spring Boot CLI verstrekte "grab-hints" om automatisch de juiste afhankelijkheden af ​​te leiden om te importeren.

We zullen hieronder enkele van de meest voorkomende gebruiksscenario's bespreken.

We kunnen bijvoorbeeld het bekende gebruiken @Controller en @Onderhoud annotaties aan snel een standaard MVC controller en service opbouwen:

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

Spring Boot CLI ondersteunt alle standaardconfiguraties voor Spring Boot. Dus we kunnen dat onze Groovy-apps automatisch toegang krijgen tot statische bronnen vanaf hun gebruikelijke standaardlocaties.

4.3. @EnableWebSecurity

Naar voeg Spring Boot Security-opties toe aan onze app, kunnen we de @EnableWebSecurity annotatie, die vervolgens automatisch wordt gedownload door Spring Boot CLI.

Hieronder zullen we een deel van dit proces abstract maken met behulp van de spring-boot-starter-security afhankelijkheid, die gebruikmaakt van de @EnableWebSecurity annotatie onder de motorkap:

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

Raadpleeg de officiële documentatie voor meer informatie over het beschermen van bronnen en het omgaan met beveiliging.

4.4. @Test

Naar een eenvoudige JUnit-test opzetten, kunnen we de @Grab (‘junit ') of @Test annotaties:

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

Hierdoor kunnen we JUnit-tests gemakkelijk uitvoeren.

4.5. Databron en JdbcTemplate

Opties voor permanente gegevens kunnen worden gespecificeerd, waaronder Databron of JdbcTemplate zonder expliciet de @Grab annotatie:

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

Door simpelweg vertrouwde Spring Bean-configuratieconventies te gebruiken, hebben we de ingesloten H2-database gepakt en deze ingesteld als de Databron.

5. Aangepaste configuratie

Er zijn twee primaire manieren om een ​​Spring Boot-microservice te configureren met Spring Boot CLI:

  1. we kunnen argumentparameters toevoegen aan onze terminalopdrachten
  2. we kunnen een aangepast YAML-bestand gebruiken om een ​​applicatieconfiguratie te bieden

Spring Boot zoekt automatisch het / config directory voor application.yml of application.properties

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

We kunnen ook opzetten:

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

Een volledige lijst met applicatie-eigenschappen is hier te vinden op Spring.

6. Conclusie

Dit concludeert onze snelle doorloop van Spring Boot CLI! Raadpleeg de officiële documenten voor meer informatie.

En zoals gewoonlijk is de broncode voor dit artikel te vinden op GitHub.


$config[zx-auto] not found$config[zx-overlay] not found