Trace Id is missing
Пропустить и перейти к основному содержимому
Люди работают в офисе, глядя на экраны ноутбуков

Что такое Java Spring Boot?

Вводная информация о Spring Boot — популярном инструменте на базе Java для разработки веб-приложений и микрослужб.

Человек смотрит на экран ноутбука, используя для работы внешнюю клавиатуру и мышь

Что такое 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, сначала необходимо определить несколько ключевых терминов.

Человек смотрит в ноутбук.
Женщина смотрит в планшет.

Что такое микрослужбы?

Микрослужбы отражают подход к архитектуре разработки программного обеспечения. Приставка "микро" в термине “микрослужбы” обозначает код, доставляемый в виде небольших, управляемых фрагментов или компонентов, а каждая "служба" или основная функция создается и развертывается независимо от других служб. Независимые компоненты работают вместе и взаимодействуют с помощью предписанных документов API — так называемых контрактов. Малый масштаб и относительная изоляция этих микрослужб обеспечивают множество преимуществ. Например, поскольку архитектура такого типа является распределенной и слабо связанной, сбой одного компонента не влечет сбой всего приложения. К другим преимуществам относятся улучшенная производительности, более простое обслуживание, более полное соответствие бизнес-задачам и повышенная отказоустойчивость.

Что такое внедрение зависимостей?

Внедрение зависимостей (DI) — это метод проектирования, используемый для достижения инверсии управления (IoC). В объектно-ориентированном программировании, например Java, объекты, которые зависят от других объектов, называются зависимостями. Как правило, принимающий или зависимый объект называется клиентом, а объект, от которого зависит клиент, — службой. Таким образом, внедрение зависимостей передает службу клиенту или "внедряет" зависимость с помощью кода, называемого инжектором. DI избавляет клиент от необходимости указывать, какую службу использовать, — за него это делает инжектор.

Человек смотрит в ноутбук и на монитор
Женщина в гарнитуре виртуальной реальности

Что такое соглашение по настройке?

Соглашение по настройке, которое еще называют программированием по соглашению, — это концепция, с помощью которой платформы приложений уменьшают число решений, которые должен принимать разработчик. Оно следует принципу "не повторяться" и избавляет от написания избыточного кода. Программирование по соглашению призвано обеспечить гибкость, так как разработчику приходится писать код только для нестандартных аспектов приложения. Если желаемое поведение приложения соответствует установленным соглашениям, приложение будет просто запускаться по умолчанию, не нуждаясь в написании файлов конфигурации. Разработчику придется писать файлы конфигурации, только если нужное поведение не соответствует "соглашению".

Платформа Spring и Spring Boot

Поскольку Spring Boot использует преимущества платформы Spring, нужно говорить не столько о "выборе" между Spring и Spring Boot, сколько о преимуществах "совместного использования" этих решений. Вам не нужно делать выбор: возможности Spring и Spring Boot дополняют друг друга.
план поддержки для всей организации
Spring Spring Boot
Что это такое?

Платформа веб-приложений с открытым кодом на базе Java.

Расширение или модуль, встроенный в платформу Spring.

Чем занимается это решение?

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

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

Когда его нужно использовать?

Используйте Spring, если требуется:

  • Гибкость.
  • Свободный подход.*
  • Удаление зависимостей из пользовательского кода.
  • Реализация совершенно уникальной конфигурации.
  • Разработка корпоративных приложений.

Используйте Spring Boot, если требуется:

  • Простота использования.
  • Директивный подход.*
  • Быстрый запуск качественных приложений и сокращение времени разработки.
  • Работа без написания стандартного кода или настройки XML-файлов.
  • Разработка REST API.
В чем его ключевая функция?

Внедрение зависимостей

Автоматическая настройка

Содержит ли оно встроенные серверы?

Нет. В 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

Учебники по Java Spring Boot

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

Изучение Spring Boot поможет вам не только значительно повысить скорость и эффективность разработки приложений, но и подготовит вас к использованию других возможностей Spring, в частности, Spring Data, Project Reactor и Spring Security.

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

Внедрение зависимостей

  • На основе XML, то есть <beans/> и <namespace:*/>.
  • На основе заметок, то есть @Component, @Autowired, @Inject.
  • На основе Java, то есть классы @Configuration, методы @Bean.

Инверсия управления (IoC)

  • ApplicationContext — корневой интерфейс, который служит контейнером инверсии управления Spring.
  • BeanFactory — интерфейс для доступа к контейнеру Spring.
  • Beans — объекты, сборка, управление и создание экземпляров которых осуществляется с помощью ApplicationContext.

Учебники по Spring Boot для начинающих

Если вы освоили основы и хотите создавать и развертывать приложения Spring Boot в масштабе, попробуйте изучить полностью управляемую службу Azure Spring Cloud от Майкрософт и VMware. Вы также можете сразу начать работу с учебником по защите приложений Spring Boot с помощью сертификатов TLS/SSL.

Создание и защита приложения 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 в облаке в большом масштабе.

Бесплатная учетная запись Azure готова к настройке в любой момент