Рубрики
Без рубрики

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

Узнайте, как быстро создавать микросервисы Spring с помощью команд Spring CLIP terminal и скриптов Groovy.

Автор оригинала: baeldung.

1. введение

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

В этой короткой статье кратко рассматривается как настроить Spring Boot CLI и выполнить простые команды терминала для запуска предварительно настроенных микрослужб .

Для этой статьи мы будем использовать Spring Boot CLI 2.0.0.RELEASE. Новейшую версию 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 . Все параметры установки см. в официальном документе docs .

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

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

Чтобы запустить встроенную оболочку , мы запускаем:

spring shell

Отсюда мы можем напрямую вводить нужные команды, не добавляя ключевое слово spring (так как теперь мы находимся в spring shell).

Например, мы можем отобразить текущую версию запущенного CLI, набрав:

version

Одна из самых важных команд-это команда Spring Boot CLI для запуска скрипта Groovy:

run [SCRIPT_NAME].groovy

Spring Boot CLI либо автоматически выведет зависимости, либо сделает это с учетом правильно предоставленных аннотаций. После этого он запустит встроенный веб-контейнер и приложение.

Давайте подробнее рассмотрим, как использовать Groovy script с Spring Boot CLI!

4. Основные Заводные Скрипты

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

Поддержка приложений с несколькими сценариями обычно требует дополнительных инструментов сборки, таких как Maven или Gradle .

Ниже мы рассмотрим некоторые из наиболее распространенных вариантов использования Spring Boot CLI, оставив более сложные настройки для других статей.

Для получения списка всех поддерживаемых Весной аннотаций Groovy, пожалуйста, ознакомьтесь с официальным docs .

4.1. @Grab

Аннотации @Grab и предложения Java-esque import 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 в наше приложение , мы можем использовать аннотацию @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!"]
    }
}

Для получения более подробной информации о том, как защитить ресурсы и обеспечить безопасность, пожалуйста, ознакомьтесь с официальной документацией .

4.4. @Test

Чтобы настроить простой тест JUnit , мы можем добавить @Grab(‘junit’) или @Test аннотации:

package bael.test

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

Это позволит нам легко выполнять тесты JUnit.

4.5. Источник данных и JdbcTemplate

Можно указать параметры постоянных данных, включая Источник данных или JdbcTemplate без явного использования @Grab аннотации :

package bael.data

@Grab('h2')
@Configuration
@EnableWebMvc
@ComponentScan('bael.data')
class DataConfig {

    @Bean
    DataSource dataSource() {
        return new EmbeddedDatabaseBuilder()
          .setType(EmbeddedDatabaseType.H2).build();
    }

}

Просто используя знакомые соглашения о конфигурации Spring bean , мы захватили встроенную базу данных H2 и установили ее в качестве источника данных /.

5. Пользовательская конфигурация

Существует два основных способа настройки микросервисов Spring Boot с помощью интерфейса командной строки Spring Boot:

  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! Для получения более подробной информации ознакомьтесь с официальным docs .

И, как обычно, исходный код этой статьи можно найти на GitHub .