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