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:
- мы можем добавить параметры аргумента в наши команды терминала
- мы можем использовать настроенный файл 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 .