Перейти к основному содержимому

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

· 5 мин. чтения

1. Введение

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

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

В этой статье мы будем использовать Spring Boot CLI 2.0.0.RELEASE. Новейшую версию Spring Boot CLI можно найти на Maven Central .

2. Настройка Spring Boot CLI

Один из самых простых способов настроить Spring Boot CLI — использовать SDKMAN. Инструкции по настройке и установке SDKMAN можно найти здесь .

После установки SDKMAN выполните следующую команду, чтобы автоматически установить и настроить Spring Boot CLI:

$ sdk install springboot

Для проверки установки выполните команду:

$ spring --version

Мы также можем установить Spring Boot CLI путем компиляции из исходного кода, а пользователи Mac могут использовать готовые пакеты из Homebrew или MacPorts . См. официальные документы для всех вариантов установки.

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

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

Для запуска встроенной оболочки запускаем:

spring shell

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

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

version

Одна из наиболее важных команд указывает Spring Boot CLI запустить сценарий Groovy:

run [SCRIPT_NAME].groovy

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

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

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

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

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

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

Список всех аннотаций Groovy, поддерживаемых Spring, можно найти в официальной документации .

4.1. @Схватить

Аннотация @Grab и предложения импорта Groovy в стиле Java позволяют легко управлять зависимостями и внедрять их .

Фактически, большинство аннотаций абстрагируются, упрощаются и автоматически включают необходимые операторы импорта. Это позволяет нам уделять больше времени размышлениям об архитектуре и базовой логике сервисов, которые мы хотим развернуть.

Давайте посмотрим, как использовать аннотацию @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 поддерживает все конфигурации по умолчанию для 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. @ Тест

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

package bael.test

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

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

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

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

package bael.data

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

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

}

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

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

Существует два основных способа настройки микросервиса 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 .