Въведение в Spring Boot CLI

1. Въведение

Spring Boot CLI е абстракция от команден ред, която ни позволява лесно да стартираме микро-услуги Spring, изразени като Groovy скриптове . Той също така осигурява опростено и подобрено управление на зависимостите за тези услуги.

Тази кратка статия прави бърз преглед на това как да конфигурирате CLI на Spring Boot и да изпълнявате прости терминални команди за изпълнение на предварително конфигурирани микро-услуги .

За тази статия ще използваме Spring Boot CLI 2.0.0. Най-новата версия на Spring Boot CLI може да бъде намерена в Maven Central.

2. Настройване на CLI на Spring Boot

Един от най-лесните начини за настройване на Spring Boot CLI е използването на SDKMAN. Инструкции за инсталиране и инсталиране на SDKMAN можете да намерите тук.

След като инсталирате SDKMAN, изпълнете следната команда за автоматично инсталиране и конфигуриране на CLI на Spring Boot:

$ sdk install springboot

За да проверите инсталирането, изпълнете командата:

$ spring --version

Също така можем да инсталираме Spring Boot CLI, като компилираме от източник, а потребителите на Mac могат да използват предварително изградени пакети от Homebrew или MacPorts. Вижте официалните документи за всички опции за инсталиране.

3. Общи терминални команди

Spring Boot CLI предоставя няколко полезни команди и функции, които са готови. Една от най-полезните функции е Spring Shell, която обгръща командите с необходимия пружинен префикс.

За да стартираме вградената обвивка , изпълняваме:

spring shell

Оттук можем директно да въвеждаме желани команди, без да изчакваме ключовата дума spring (тъй като сега сме в spring shell).

Например, можем да покажем текущата версия на работещия CLI, като напишем:

version

Една от най-важните команди е да кажете на Spring Boot CLI да стартира скрипт Groovy:

run [SCRIPT_NAME].groovy

CLI на Spring Boot или автоматично ще изведе зависимостите, или ще го направи при правилно предоставените пояснения. След това ще стартира вграден уеб контейнер и приложение.

Нека разгледаме по-подробно как да използваме скрипта Groovy с CLI на Spring Boot!

4. Основни скриптове Groovy

Groovy и Spring се съчетават с Spring Boot CLI, за да позволят бързи скриптове на мощни, ефективни микро-услуги в еднофайлови инсталации на Groovy .

Поддръжката на приложения с много скриптове обикновено изисква допълнителни инструменти за изграждане като Maven или Gradle.

По-долу ще разгледаме някои от най-често използваните случаи за Spring Boot CLI, запазвайки по-сложни настройки за други статии.

За списък на всички анотации на Groovy, поддържани от пролетта, моля, вижте официалните документи.

4.1. @Grab

В @Grab анотация и Java в стил Groovy за внос клаузи позволяват лесно управление на зависимостите и инжектиране .

Всъщност повечето анотации абстрахират, опростяват и автоматично включват необходимите оператори за импортиране. Това ни позволява да отделяме повече време за мислене за архитектурата и основната логика на услугите, които искаме да разгърнем.

Нека да разгледаме как да използваме анотацията @Grab :

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

Както виждаме, spring-boot-starter-actuator се предлага предварително конфигуриран, позволявайки разгръщане на лаконичен скрипт, без да се изисква персонализирано приложение или свойства на околната среда, XML или друга програмна конфигурация , въпреки че всяко от тези неща може да бъде посочено, когато е необходимо.

Пълният списък с аргументи @Grab - всеки посочващ библиотека за изтегляне и импортиране - е достъпен тук.

4.2. @Controller, @RestController и @EnableWebMvc

За по-нататъшно ускоряване на внедряването можем алтернативно да използваме предоставените от Spring Boot CLI „подсказки за грабване“, за да направим автоматично заключения за правилните зависимости за импортиране .

Ще разгледаме някои от най-често срещаните случаи на употреба по-долу.

Например, можем да използваме познатите анотации @Controller и @Service, за да изградим бързо скелет на стандартен MVC контролер и услуга :

@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 поддържа всички конфигурации по подразбиране за Spring Boot. Така че, можем, нашите приложения на Groovy автоматично ще имат достъп до статични ресурси от обичайните им местоположения по подразбиране.

4.3. @ EnableWebSecurity

За да добавим опции за защита на Spring Boot към нашето приложение , можем да използваме анотацията @EnableWebSecurity , която след това ще бъде изтеглена автоматично от CLI на Spring Boot.

По-долу ще абстрахираме част от този процес, като използваме зависимостта spring-boot-starter-security , която използва анотацията @EnableWebSecurity под капака:

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

Има два основни начина за конфигуриране на микроуслуга Spring Boot с помощта на Spring Boot CLI:

  1. можем да добавим параметри на аргументи към нашите терминални команди
  2. можем да използваме персонализиран YAML файл, за да предоставим конфигурация на приложението

Spring Boot автоматично ще търси в директорията / config за application.yml или application.properties

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

Можем също да настроим:

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

Пълен списък на свойствата на приложението можете да намерите тук в Spring.

6. Заключение

Това завършва нашата бърза разходка на Spring Boot CLI! За повече подробности вижте официалните документи.

И както обикновено, изходният код за тази статия може да бъде намерен в GitHub.