Что такое Spring Boot?
Java Spring Boot — это средство с открытым исходным кодом, которое упрощает использование платформ на основе Java для создания микрослужб и веб-приложений. Если мы хотим дать определение Spring Boot, начинать нужно с Java — языка разработки и вычислительной платформы для разработки приложений, которые принадлежат к числу наиболее популярных и широко используемых решений. Разработчики по всему миру начинают свой путь с изучения программирования на Java. Гибкая и удобная среда Java—— излюбленный инструмент разработчиков, что бы они ни создавали — социальные сети, игровые и веб-программы или сетевые и корпоративные приложения.
Java и платформа Spring
Хотя Java проще в использовании и легче для изучения, чем другие языки, уровень сложности, связанный с созданием, отладкой и развертыванием приложений Java, поднялся на новую головокружительную высоту. Трудность в том, что количество переменных, которыми оперируют современные разработчики, создавая мобильные и веб-приложения для распространенных современных технологий (потоковая передача музыки, мобильные приложения для платежей и т. д.), растет по экспоненте. Разработчику, который пишет базовое бизнес-приложение, теперь необходимо использовать несколько библиотек и подключаемых модулей, обеспечить ведение журнала ошибок и обработку библиотек, а также интеграции с веб-службами и несколькими языками, такими как C#, Java, HTML и т. д. Очевидно, что существует неудовлетворенный спрос на инструменты, которые позволили бы упростить разработку приложений Java и сэкономить время и деньги разработчиков.
Введите в обиход платформы приложений — крупные фрагменты готового кода, которые разработчики могут использовать и добавлять в собственный код согласно своим потребностям. Эти платформы облегчают задачи разработчиков и подходят практически для любых нужд, будь то разработка мобильных и веб-приложений или использование рабочих столов и API. Платформы упрощают и ускоряют создание приложений, а также делают этот процесс более безопасным, предоставляя подходящий для повторного использования код и инструменты, которые помогают связывать различные элементы проекта разработки программного обеспечения.
И здесь на сцену выходит Spring. Spring — это проект с открытым исходным кодом, который предоставляет упрощенный модульный подход к созданию приложений на Java. Семейство проектов Spring появилось в 2003 г. как реакция на сложности ранней эпохи разработки на Java и обеспечивает поддержку этого процесса. Под именем Spring обычно понимают собственно платформу приложений или всю группу проектов или модулей. Java Spring Boot — это отдельный модуль, созданный в качестве расширения платформы Spring.
Итак, учитывая, как платформа Spring, Spring Boot и Java работают вместе, Spring Boot можно определить, как средство, которое оптимизирует и ускоряет разработку веб-приложений и микрослужб на платформе Java, именуемой Spring.
Иногда, так как языком и/или платформой является Java, этот модуль называют "Java Spring Boot", "платформой Java Spring" или "платформой Spring Boot". Но поскольку для Java существуют и другие сторонние платформы, например Play и Hibernate, правильнее говорить "Spring" и "Spring Boot."
Общую информацию об основных возможностях Java см. в статье Что такое Java?
В чем разница между Spring и Spring Boot?
Как упоминалось ранее, Spring — это платформа приложений с открытым кодом на базе Java, которая охватывает целый ряд небольших проектов. К другим популярным проектам Spring относятся, например, Spring Data, Spring Cloud и Spring Security. Чтобы понять разницу между Spring Boot и Spring, важно помнить, что, несмотря на различия в основных возможностях, все эти решения относятся к семейству Spring.
Чтобы полностью понять различия между Spring и Spring Boot, сначала необходимо определить несколько ключевых терминов.
Что такое микрослужбы?
Что такое внедрение зависимостей?
Внедрение зависимостей (DI) — это метод проектирования, используемый для достижения инверсии управления (IoC). В объектно-ориентированном программировании, например Java, объекты, которые зависят от других объектов, называются зависимостями. Как правило, принимающий или зависимый объект называется клиентом, а объект, от которого зависит клиент, — службой. Таким образом, внедрение зависимостей передает службу клиенту или "внедряет" зависимость с помощью кода, называемого инжектором. DI избавляет клиент от необходимости указывать, какую службу использовать, — за него это делает инжектор.
Что такое соглашение по настройке?
Соглашение по настройке, которое еще называют программированием по соглашению, — это концепция, с помощью которой платформы приложений уменьшают число решений, которые должен принимать разработчик. Оно следует принципу "не повторяться" и избавляет от написания избыточного кода. Программирование по соглашению призвано обеспечить гибкость, так как разработчику приходится писать код только для нестандартных аспектов приложения. Если желаемое поведение приложения соответствует установленным соглашениям, приложение будет просто запускаться по умолчанию, не нуждаясь в написании файлов конфигурации. Разработчику придется писать файлы конфигурации, только если нужное поведение не соответствует "соглашению".
Платформа Spring и Spring Boot
Spring | Spring Boot | |
---|---|---|
Что это такое? | Платформа веб-приложений с открытым кодом на базе Java. | Расширение или модуль, встроенный в платформу Spring. |
Чем занимается это решение? | Предоставляет гибкую, полностью настраиваемую среду, используя инструменты и библиотеки готового кода для создания настраиваемых и слабо связанных веб-приложений. | Обеспечивает возможность создавать автономные приложения Spring, которые можно запускать сразу и которым не нужны заметки, XML-файл конфигурации или написание множества дополнительных строк кода. |
Когда его нужно использовать? | Используйте Spring, если требуется:
| Используйте Spring Boot, если требуется:
|
В чем его ключевая функция? | Внедрение зависимостей | Автоматическая настройка |
Содержит ли оно встроенные серверы? | Нет. В Spring серверам необходима явная настройка. | Да, Spring Boot предоставляется со встроенными HTTP-серверами, например Tomcat и Jetty. |
Как оно настраивается? | Платформа Spring обеспечивает гибкость, но ее необходимо настраивать вручную. | Spring Boot автоматически настраивает Spring и другие сторонние платформы, используя принцип принятого по умолчанию "соглашения по конфигурации". |
Нужны ли навыки работы с XML? | Для работы в Spring необходимы знания об XML-файле конфигурации. | Для Spring Boot не требуется XML-файл конфигурации. |
Есть ли в нем средства CLI для разработки и тестирования приложений? | Сама по себе платформа Spring не предоставляет средства CLI для разработки или тестирования приложений. | Spring Boot является модулем Spring, поэтому в нем имеется средство CLI для разработки и тестирования приложений на основе Spring. |
На каком подходе оно основано: директивном или свободном? | Свободный* | Директивный* |
*Директивный и свободный подходы к платформам
Несмотря на несколько негативный оттенок слова "директивный", используемый в Spring Boot директивный подход, так же как и применяемый в Spring свободный подход имеют свои преимущества.
Директивный подход
При директивном подходе подразумевается, что есть лишь один способ выполнить задачу, который существенно проще остальных. Согласно замыслу, программное обеспечение ограничивает разработчиков, побуждая их следовать предписанным маршрутом.
Такой подход предоставляет хорошо разработанную схему и рекомендации, которые идеально работают для большинства людей в большинстве ситуаций. Приложение создается в точном соответствии с рекомендациями и широко распространенными соглашениями. Директивный подход существенно упрощает совместную работу и получение помощи в рамках программного проекта. Другие разработчики, у которых есть опыт работы с этой платформой, моментально осваиваются с новым приложением и могут сразу включиться в работу.
Свободный подход
Свободный подход используют, если все решения равно сложны и для них требуется примерно одинаковый объем работы. Этот подход гласит, что не существует единственно верного способа найти решение проблемы. Вместо этого он предоставляет гибкие инструменты, которые позволяют решить проблему несколькими способами. Свободные платформы обеспечивают разработчикам больше гибкости и предоставляют им больше контроля. Однако их главный недостаток в том, что разработчику нужно принять больше решений и, возможно, в итоге потребуется написать больше кода, так как эта платформа полностью открыта и не предлагает каких-либо предпочтительных вариантов.
Возможности и преимущества Spring Boot
Наконец, настало время обсудить основные возможности Java Spring Boot, которые выходят за рамки платформы Spring. Spring Boot упрощает и ускоряет настройку и запуск приложений. Она устраняет трудоемкий процесс настройки, необходимый для большинства приложений на основе Spring. Разработчики могут сразу приступить к использованию Spring Boot, не изучая лежащую в основе этого решения платформу Spring.
Вот как функции Spring Boot помогают упростить задачи программирования на Java. Ниже перечислены некоторые основные функции Spring Boot.
-
Автономные приложения. Spring Boot помогает создавать приложения, не привязанные к определенной платформе, которые могут работать локально на устройстве и которым для функционирования не требуется подключение к Интернету или другие установленные службы.
-
Встроенные серверы. Spring Boot позволяет напрямую внедрять серверы, такие как Tomcat, Jetty или Undertow.
-
Директивный подход. Spring Boot упрощает настройку сборок, предоставляя директивные зависимости для начала работы.
-
Автоматическая настройка. Если есть возможность, Spring Boot автоматически настраивает Spring и другие сторонние библиотеки.
-
Функции, готовые к использованию в рабочей среде. Spring Boot предоставляет готовые функции для использования в рабочей среде, например метрики, проверки работоспособности и внешние конфигурации.
Преимущества Spring Boot
Spring Boot
-
Сокращает время разработки и повышает производительность. Spring Boot значительно упрощает разработку приложений на основе Spring на Java. Ее директивный подход к платформе Spring сокращает время, затрачиваемое на принятие решений и выполнение повторяющихся задач и позволяет сосредоточиться на создании и тестировании приложений.
-
Уменьшает потребность в написании стандартного кода, заметках и XML-файле конфигурации.Разработчикам не нужно создавать код, настраивать XML-файлы или изучать платформу Spring, если они этого не хотят.
-
Интегрирует приложения в семейство проектов Spring. Приложения Spring Boot легко интегрируются с другими проектами в экосистеме платформы Spring, такими как Spring Data, Spring Cloud, Spring Security, а также с другими доверенными облачными службами, например Microsoft Azure Spring Cloud.
-
Предоставляет средства разработки и тестирования. С помощью интерфейса командной строки (CLI) и встроенных HTTP-серверов Spring Boot можно без труда создавать среды для разработки и тестирования приложений на базе Spring.
-
Предлагает подключаемые модули и инструменты, упрощающие разработку. Spring Boot предлагает подключаемые модули для работы с выполняющимися в памяти базами данных, а также другие популярные средства автоматизации сборки, например Apache Maven.
Учебники по Java Spring Boot
Если вы уже умеете создавать приложения на платформе Spring, вам, вероятно, будет проще использовать для изучения Spring Boot предоставленные в этом разделе учебники, ресурсы для начала работы над проектами и документацию. Но если вам нужно быстрее приступить к работе с модулем Spring Boot при том, что вы еще не знакомы с платформой, у нас для вас хорошие новости. Вы можете изучить Spring Boot и начать работу с ним без предварительного изучения платформы Spring, так как вы многое узнаете об основных принципах работы этого модуля по мере его использования. Хотя это и не позволит вам узнать все, что нужно, об этой платформе, вы получите неплохую начальную подготовку, если решите изучить ее позже.
Изучение Spring Boot поможет вам не только значительно повысить скорость и эффективность разработки приложений, но и подготовит вас к использованию других возможностей Spring, в частности, Spring Data, Project Reactor и Spring Security.
Внедрение зависимостей
- На основе XML, то есть <beans/> и <namespace:*/>.
- На основе заметок, то есть @Component, @Autowired, @Inject.
- На основе Java, то есть классы @Configuration, методы @Bean.
Инверсия управления (IoC)
- ApplicationContext — корневой интерфейс, который служит контейнером инверсии управления Spring.
- BeanFactory — интерфейс для доступа к контейнеру Spring.
- Beans — объекты, сборка, управление и создание экземпляров которых осуществляется с помощью ApplicationContext.
Учебники по Spring Boot для начинающих
Создание и защита приложения Java
Создайте приложение Java с помощью Spring Initializr, используя стартер Spring Boot для Microsoft Entra ID (ранее — Azure Active Directory).
Развертывание первого приложения в Azure Spring Cloud
Узнайте, как создавать, подготавливать и отслеживать простые приложения Spring Boot, полученные с помощью Spring Initializr.
Создание простой микрослужбы Spring Boot
Создайте и разверните простую микрослужбу, а затем узнайте, как добавить в нее технологии Spring Cloud.
Дополнительные ресурсы для начала работы со Spring Boot
Добавляйте функции хранилища, безопасности, проверки подлинности и хранилища ключей в приложения Spring Boot.
Вопросы и ответы
-
Spring Boot — это веб-платформа Java на основе микрослужб с открытым кодом, которая предлагается в Spring. Она особенно полезна для разработчиков программного обеспечения, создающих веб-приложения и микрослужбы.
-
"Spring Boot в Java" — это еще одно название "Java Spring Boot". Эти два термина взаимозаменяемы. Java — это язык и платформа, Spring — это платформа приложений на основе Java, а Spring Boot — расширение платформы Spring, обладающее дополнительными преимуществами.
-
Spring Boot обладает общими функциями платформы Spring, но для работы с этим модулем не требуется знание Spring. Разработчик может быстрее получить работающее приложение, так как атрибуты Spring Boot настраиваются автоматически, а директивный подход позволяет устранить большую часть стандартного кода и действий по настройке, связанных с разработкой и развертыванием приложений Spring.
-
Да, как упоминалось выше, модуль Spring Boot особенно полезен при использовании архитектуры разработки программного обеспечения на основе микрослужб. Микрослужбы — это популярный способ создания небольших автономных команд, которые могут работать независимо друг от друга. В силу своей природы микрослужбы работают только на стороне сервера.
-
Сокращение времени разработки, повышение производительности и простота использования — вот лишь несколько преимуществ, связанных с разработкой приложений Spring Boot.
-
На веб-сайте Spring , а также в ресурсах для начала работы и документации Spring Boot из Microsoft Azure можно найти множество учебников, кратких руководств и документации. Если вы хотите сразу начать развертывание приложений Spring Boot, посмотрите вебинар Ускоренное развертывание приложений Spring Boot в облаке в большом масштабе.