Вступ до CLI Spring Boot

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 виконайте таку команду, щоб автоматично встановити та налаштувати Spring Boot CLI:

$ sdk install springboot

Щоб перевірити встановлення, запустіть команду:

$ spring --version

Ми також можемо встановити Spring Boot CLI шляхом компіляції з джерела, а користувачі Mac можуть використовувати заздалегідь побудовані пакети від Homebrew або MacPorts. Усі варіанти встановлення див. В офіційних документах.

3. Загальні команди терміналів

CLI Spring Boot надає декілька корисних команд та функцій, що нестандартно встановлені. Однією з найбільш корисних функцій є Spring Shell, яка обгортає команди з необхідним префіксом spring .

Щоб запустити вбудовану оболонку , ми запускаємо:

spring shell

Звідси ми можемо безпосередньо вводити потрібні команди без попереднього очікування ключового слова spring (оскільки зараз ми знаходимося в оболонці spring).

Наприклад, ми можемо відобразити поточну версію запущеного 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, що підтримуються Spring, див. В офіційних документах.

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!"; } }

CLI Spring Boot підтримує всі конфігурації за промовчанням для Spring Boot. Отже, ми можемо, щоб наші програми Groovy автоматично отримували доступ до статичних ресурсів зі своїх звичайних місць за замовчуванням.

4.3. @ EnableWebSecurity

Щоб додати параметри Spring Boot Security до нашого додатку , ми можемо скористатися анотацією @EnableWebSecurity , яка потім буде автоматично завантажена Spring Boot CLI.

Нижче ми абстрагуємо частину цього процесу, використовуючи залежність 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 за допомогою CLI Spring Boot:

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

Spring Boot автоматично здійснить пошук в каталозі / config для application.yml або application.properties

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

Ми також можемо налаштувати:

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

Повний перелік властивостей програми можна знайти тут на Весна.

6. Висновок

На цьому наша швидка прогулянка Spring Boot CLI! Щоб отримати докладнішу інформацію, перегляньте офіційні документи.

І як зазвичай, вихідний код цієї статті можна знайти на GitHub.