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

Весенняя Загрузка Без Веб – Сервера

Изучите несколько способов запуска весенней загрузки без веб-сервера

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

1. введение

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

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

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

2. Использование зависимостей

Самый простой способ запретить приложению Spring Boot запускать встроенный веб-сервер-это не включать стартер веб-сервера в наши зависимости .

Это означает, что не следует включать зависимость spring-boot-starter-web ни в файл сборки Maven POM, ни в файл сборки Gradle. Вместо этого мы хотели бы использовать более базовую зависимость spring-boot-starter вместо нее.

Имейте в виду что зависимости Tomcat могут быть включены в наше приложение в качестве транзитивных зависимостей . В этом случае нам, возможно, потребуется исключить библиотеку Tomcat из любой зависимости, включающей ее.

3. Изменение приложения Spring

Еще один способ отключить встроенный веб-сервер в Spring Boot-это использовать код. Мы можем использовать либо SpringApplicationBuilder :

new SpringApplicationBuilder(MainApplication.class)
  .web(WebApplicationType.NONE)
  .run(args);

Или мы можем использовать ссылку на приложение Spring :

SpringApplication application = new SpringApplication(MainApplication.class);
application.setWebApplicationType(WebApplicationType.NONE);
application.run(args);

В любом случае у нас есть преимущество в том, что API-интерфейсы сервлетов и контейнеров доступны в пути к классам . Это означает, что мы все еще можем использовать библиотеки веб-сервера без запуска веб-сервера. Это может быть полезно, например, если мы хотим использовать их для написания тестов или использовать их API в нашем собственном коде.

4. Использование свойств приложения

Использование кода для отключения веб — сервера является статическим вариантом-это повлияет на наше приложение независимо от того, где мы его развернем. Но что, если мы хотим создать веб-сервер в определенных обстоятельствах?

В этом случае мы можем использовать свойства приложения Spring:

spring.main.web-application-type=none

Или используя эквивалентный YAML:

spring:
  main:
    web-application-type: none

Преимущество такого подхода заключается в том, что мы можем условно включить веб-сервер . Используя профили Spring или условные обозначения , мы можем управлять поведением веб-сервера в различных развертываниях.

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

Обратите внимание, что некоторые более ранние версии Spring Boot использовали логическое свойство с именем web-environment для включения и отключения веб-сервера. С принятием как традиционных, так и реактивных контейнеров в Spring Boot, свойство было переименовано и теперь использует перечисление .

5. Заключение

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