Пропустить и перейти к основному содержимому

Что такое 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, и эти проекты нацелены на упрощение написания приложений в Java. Само по себе название Spring обычно относится к исполняющей среде или группе проектов целиком, также называемых модулями. Java Spring Boot — это отдельный модуль, созданный как расширение платформы Spring.

Принимая во внимание то, как платформа Spring, Spring Boot и Java работают вместе, Spring Boot можно дать следующее определение — это инструмент, который упрощает и ускоряет разработку веб-приложений и микрослужб на Spring (платформе Java).

Поскольку 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, называемых контрактами. Малый масштаб и относительная изолированность микрослужб дают множество преимуществ. Например, поскольку такая архитектура является распределенной и нефиксированной, в случае отказа одного компонента приложение продолжает работать. К другим преимуществам относятся высокая эффективность, удобство обслуживания, более точное соответствие бизнес-целям и устойчивость к отказам.

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

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

Что означает принцип соглашений по конфигурации?

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

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

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

Недоступно Spring Spring Boot
Что это такое? Платформа веб-приложений с открытым кодом на основе Java. Расширение или модуль, созданный на платформе Spring.
Для чего оно предназначено? Предоставляет гибкую, полностью настраиваемую среду с инструментами и библиотеками заранее написанного кода для создания индивидуальных нефиксированных веб-приложений. Предоставляет возможность создавать автономные приложения Spring, которые можно запускать сразу же без заметок, конфигурации XML и написания больших объемов дополнительного кода.
В каких случаях рекомендуется использование инструмента?

Используйте Spring, когда захотите:

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

Используйте Spring Boot, когда захотите:

  • Простота использования
  • Подход на основе рекомендаций*.
  • Для быстрого создания качественных приложений и сокращения времени разработки.
  • Отказ от необходимости писать шаблонный код и настраивать XML.
  • Разработка API REST.
В чем заключается главная особенность? Внедрение зависимостей Автоматическая конфигурация
Доступны ли встроенные серверы? Нет. В 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 таким способом, у вас будут отличные задатки, если вы захотите вернуться к ней позже.

Еще одно преимущество изучения Spring Boot, помимо ускорения и упрощения разработки приложений, — это то, что вы сможете пользоваться прочими функциями Spring, а именно Spring Data, Project Reactor и Spring Security.

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

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

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

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

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

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

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

Создание и защита приложения Java

Создайте приложение Java с помощью Spring Initializr, воспользовавшись начальным набором Spring Boot для Azure Active Directory (Azure AD).

Развертывание первого приложения в 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 готова к настройке в любой момент