Topjava – онлайн-школа по обучению программированию на самом популярном в мире языке Java

*Открытые вступительные занятия с выполнением домашнего задания
Spring Framework и Spring Boot:
понимание различий
За последние несколько лет, из-за наращивания дополнительной функциональности, структура фреймворка Spring стала заметно сложнее. Теперь, чтобы начать новый Spring-проект, требуется длительная процедура подготовки, связанная с его настройкой. Чтобы сэкономить время и избежать конфигурирования данного фреймворка каждый раз с нуля, был придуман Spring Boot. Он использует Spring, как основу для своей работы

В этой статье мы сосредоточимся на роли Spring и Spring Boot в решении различных проблем, а также посмотрим, чем они отличаются друг от друга. Давайте начнем!
Spring Framework
Spring — один из наиболее широко используемых фреймворков для разработки интерпрайз-приложений, обеспечивающий продуманную модель программирования и конфигурации. Целью создания данного фреймворка способствовало желание упростить разработку приложений на популярном в то время (да и сейчас) Java EE стеке технологий от компании Oracle, который на тот момент был очень сложен и не всегда удобен в использовании

В отличие от других платформ, Spring фокусируется на нескольких областях функционирования приложений и предоставляет для них широкий спектр дополнительных функций

Одной из основных особенностей Spring Framework является использование паттерна Dependency Injection (DI, внедрение зависимости). DI помогает намного проще реализовывать необходимую приложениям функциональность, а также позволяет разрабатывать слабо связанные классы, делая их более универсальными
Если Spring Framework фокусируется на предоставлении гибкости, то Spring Boot стремится сократить длину кода и упростить разработку web-приложения. Используя конфигурацию при помощи аннотаций и стандартного кода, Spring Boot сокращает время, затрачиваемое на разработку приложений. Данная возможность помогает создать автономные приложения с меньшими или почти нулевыми затратами на их конфигурацию.

Автоконфигурация — это особенность Spring Boot. При помощи аннотаций он автоматически настраивает специальные конфигурационные классы

Теперь рассмотрим некоторые особенности и преимущества упомянутых фреймворков
Преимущества Spring Framework
• Spring Framework может быть задействован на всех архитектурных слоях, применяемых при при разработке web-приложений

• Использует модель POJO при написании классов, а это очень легкая структура

• Позволяет свободно связывать модули и легко их тестировать

• Поддерживает декларативное программирование

• Избавляет от самостоятельного создания фабричных и синглтон-классов

• Поддерживает различные способы конфигурации

• Предоставляет сервис уровня middleware

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

• Spring Boot не требует развертывания war-файлов

• Создает автономные приложения

• Помогает напрямую встроить в приложение Tomcat, Jetty или Undertow

• Не требует XML-конфигурации

• Направлен на уменьшение объема исходного кода

• Имеет дополнительную функциональность "из коробки"

• Простота запуска

• Простая настройка и управление

Благодаря таким функциям, как автоконфигурация, Spring Boot избавляет вас от написания лишнего кода и помогает избежать ненужной настройки

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

Источник: https://dzone.com/articles/understanding-the-basics-of-spring-vs-spring-boot