В чём состоит различие между Spring и Spring Boot?

Этим вопросом задаются в основном начинающие разработчики. Попытаемся дать на него краткий ответ.

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

Цель Spring Boot состоит в том, чтобы упростить процесс разработки приложений на основе Spring при помощи их создания на основе уже готовых «наборов» программных компонентов (так называемых, «starter» пакетов), которые уже включают «джентельменский» набор того, что необходимо для решения той или иной задачи и сконфигурированы соответствующим образом.

Это избавляет программиста не только от написания длинных конфигурационных файлов (особенно в XML), но и от необходимости настраивать различные компоненты для совместной работы. Что позволяет сосредоточиться на написании прикладного кода.

Если конфигурация по умолчанию, вас в чём-то не устраивает, также можно самостоятельно сконфигурировать нужные компоненты написав соответствующий класс конфигурации. Конфигурации из этого класса переопределит конфигурацию, заданную по умолчанию для соответствующих компонентов, что позволяет в случае необходимости полностью настроить приложение «под проект».

Наиболее часто используемые starter пакеты:

  • Spring boot starter web
    Включает компоненты для создания web приложений или backend REST сервисов (работает на основе Spring MVC);
  • Spring boot starter data JPA
    Включает компоненты для работы с базами данных в соответствии с подходом ORM (работает на основе Hibernate);
  • Spring boot starter test
    Включает компоненты для автоматизированного (Unit) тестирования приложений (работает на основе Junit и Mockito).

Это далеко не всё, что может предложить Spring Boot на сегодняшний день. Существуют также starter пакеты для многих других задач. Например, выполнения заданий по расписанию (на основе Spring Quartz), работы с электронной почтой, диагностики работы приложений и т.д.

Также Spring Boot включается в себя переносную версию сервера приложений Tomcat. Что даёт собирать standalone приложения и тем самым обойтись без развёртывания специального сервера для работы приложений и значительно упрощает их контейнеризацию в тот же Docker.

В настоящее время Spring Boot уже почти полностью вытеснил «классические» приложения Spring в качестве основы для новых проектов.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *