Начало работы со Spring Boot — 7 вещей, которые должен знать новичок

Spring Boot — сложный для понимания фреймворк. В этом пособии по Spring Boot для начинающих мы рассмотрим основы Spring Boot и поможем вам понять важные концепции:

  • Стартовые проекты Spring Boot Starter Projects
  • Автоконфигурация Spring Boot
  • Spring Boot Starter Parent

Мы рассмотрим различные учебные ресурсы, созданные для того, чтобы помочь вам эффективно начать работу со Spring Boot.

Примечание переводчика. Если вас заинтересовали указанные ресурсы, готов их перевести.

Архитектура Spring Boot

Строительными блоками Spring Boot являются:

  • Spring Boot Starter Projects
  • Spring Boot Starter Parent
  • Автоконфигурация

Мы начнем с того, чтобы понять, что позволяет достичь Spring Boot, сравнивая его с Spring и Spring MVC.

Как только вы это поймете, у вас будет хорошая возможность начать со строительных блоков Spring Boot.

Давайте начнем кататься на «американских горках» в Spring Boot

Spring Boot, Spring MVC, Spring — в чем разница?

Самое важное, что нужно понять, это

Spring Boot не конкурирует со Spring или Spring MVC. Он облегчает их использование.

Spring Framework

Наиболее важной особенностью Spring Framework является внедрение зависимостей. В основе всех модулей Spring лежит внедрение зависимостей (DI) или инверсия управления (IOC).

При правильном использовании DI или IOC мы можем разрабатывать слабосвязанные приложения. И слабосвязанные приложения могут быть легко протестированы модулем.

Spring MVC

Spring MVC фреймворк предоставляет способ разработки слабосвязанных веб-приложений. С такими простыми понятиями, как Dispatcher Servlet, ModelAndView и View Resolver, это упрощает разработку веб-приложений.

Spring Boot

Проблема с Spring и Spring MVC заключается в количестве необходимой конфигурации.

  <bean         class="org.springframework.web.servlet.view.InternalResourceViewResolver">         <property name="prefix">             <value>/WEB-INF/views/</value>         </property>         <property name="suffix">             <value>.jsp</value>         </property>   </bean>    <mvc:resources mapping="/webjars/**" location="/webjars/"/>

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

Следующая статья копает глубже и дает вам полное сравнение между Spring, Spring MVC и Spring Boot.

Автоконфигурация Spring Boot

Приложения Spring и Spring MVC имеют много конфигураций XML или Java Bean.

Spring Boot приносит новый мыслительный процесс вокруг этого.

Можем ли мы привнести больше интеллекта в это? Когда spring mvc jar добавлен в приложение, можем ли мы автоматически настроить некоторые bean-компоненты?

  • Как насчет автоматической настройки источника данных, если jar Hibernate находится на пути к классам?
  • Как насчет автоматической настройки сервлета Dispatcher, если JAR Spring MVC находится на пути к классам?

Там будут условия для переопределения автоматической конфигурации по умолчанию.

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

Следующая статья подробно рассматривает автоматическую настройку.

Стартовые проекты Spring Boot

Вот что говорится в документации Spring Boot о стартерах.

Стартеры — это набор удобных дескрипторов зависимостей, которые вы можете включить в свое приложение. Вы получаете универсальное решение для всех необходимых вам Spring и связанных с ними технологий, без необходимости искать примеры кода и копировать множество дескрипторов зависимостей. Например, если вы хотите начать использовать Spring и JPA для доступа к базе данных, просто включите в ваш проект зависимость spring-boot-starter-data-jpa, и все готово.

Давайте рассмотрим пример стартера — Spring Boot Starter Web.

Если вы хотите разработать веб-приложение или приложение для предоставления релевантных сервисов, Spring Boot Starter Web — это выбор.

На следующем снимке экрана показаны различные зависимости, которые добавляются в наше приложение при добавлении Spring Boot Starter Web в зависимости вашего проекта.

Это широкий спектр компонентов, которые обычно используются для разработки веб-приложений. Spring Boot Starter Web объединяет их и предоставляет простой подход к их использованию.

  • Spring — ядро, beans, контекст, AOP
  • Web MVC — (Spring MVC)
  • Jackson — для JSON связывания
  • Validation — Hibernate валидация, API валидации
  • Встроенный контейнер сервлетов — Tomcat
  • Ведение журнала — logback, slf4j

Любое типичное веб-приложение будет использовать все эти зависимости. Spring Boot Starter Web поставляется в комплекте с этим. Как разработчику, мне не нужно беспокоиться об этих зависимостях или их совместимых версиях.

Spring Boot предоставляет широкий спектр стартовых проектов. Spring Initializr поддерживает их всех и многое другое. Среди разнообразных начальных проектов и поддерживаемых вариантов:

  • spring-boot-starter-web-services: для создания приложений, представляющих веб-службы SOAP
  • spring-boot-starter-web — Создание веб-приложений и приложений RESTful
  • spring-boot-starter-test — написание отличных юнит-тестов и интеграционных тестов
  • spring-boot-starter-jdbc — Традиционные приложения JDBC
  • spring-boot-starter-hateoas — сделайте ваши сервисы более интересными, добавив функции HATEOAS
  • spring-boot-starter-security — аутентификация и авторизация с использованием Spring Security
  • spring-boot-starter-data-jpa — JPA Spring Data с Hibernate
  • spring-boot-starter-cache — Включение поддержки кэширования Spring Framework
  • spring-boot-starter-data-rest — Предоставление простых служб REST с использованием Spring Data REST

Вы можете подробно изучить стартовые проекты с помощью следующей статьи: Инициализация проектов с помощью Spring Boot Starters — Web и JPA.

Spring Boot Starter Parent

Все проекты Spring Boot обычно используют spring-boot-starter-parent в качестве родителя в pom.xml.

    <parent>         <groupId>org.springframework.boot</groupId>         <artifactId>spring-boot-starter-parent</artifactId>         <version>2.0.0.RELEASE</version>     </parent>

Parent Poms позволяют вам управлять следующими вещами для нескольких дочерних проектов и модулей:

  • Configuration — версия Java и другие свойства
  • Depedency Management — версии зависимостей
  • Default Plugin Configuration — конфигурация плагина по умолчанию

Вы можете прочитать больше о Spring Boot Starter Parent в статье:
Введение в Spring Boot Starter Parent

Spring Initializr — создание Spring Boot проектов со скоростью F1

Spring Initializr http://start.spring.io/ — отличный инструмент для запуска ваших проектов Spring Boot.

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

  • Веб-приложения
  • Restful приложения
  • Пакетные приложения

Давайте рассмотрим пример создания веб-приложения с помощью Spring Initializr.

Как показано на рисунке выше, необходимо выполнить следующие шаги

  1. Введите com.in28minutes.springboot в качестве группы
  2. Введите student-services в качестве Артефакта
  3. Выберите следующие зависимости: Web, Actuator, DevTools

  • Нажмите кнопку «Создать проект» внизу страницы.
  • Импортируйте проект в Eclipse.

Следующая статья углубится в Spring Initializr.

Spring Boot и встроенные серверы

Когда мы создаем развертываемое приложение, мы встраиваем сервер (например, Tomcat) в дистрибутивный пакет.

Например, для Spring Boot Application вы можете сгенерировать jar приложения, который содержит Embedded Tomcat. Вы можете запустить веб-приложение как обычное Java-приложение!

Под встроенным сервером подразумевается, что наш развертываемый модуль содержит двоичные файлы для сервера (например, tomcat.jar).

Давайте кратко рассмотрим зависимости для spring-boot-starter-web

<dependency>   <groupId>org.springframework.boot</groupId>   <artifactId>spring-boot-starter-tomcat</artifactId>   <version>2.0.0.RELEASE</version>   <scope>compile</scope> </dependency>

Вы можете видеть, что по умолчанию Starter Web включает зависимость от tomcat.

  • Tomcat является встроенным сервером по умолчанию для Spring Boot.
  • Spring Boot также поддерживает Jetty и Undertow.

Следующая статья посвящена встраиваемым серверам.
Можно ознакомиться с кодом проекта на Github.

Spring Data

Из описания проекта http://projects.spring.io/spring-data/:

Задача Spring Data — предоставить знакомую и согласованную модель программирования на основе Spring для доступа к данным, сохраняя при этом особые черты основного хранилища данных. Это упрощает использование технологий доступа к данным, реляционных и нереляционных баз данных, структур сокращения карт и облачных сервисов данных.

Для упрощения Spring Data предоставляет абстракции (интерфейсы), которые вы можете использовать независимо от источника данных.

Некоторые из подмодулей в Spring Data

  • Spring Data JPA — Реляционные базы данных
  • Spring Data Mongodb
  • Spring Data Rest — предоставляет потрясающий API REST для хранилищ данных Spring.

Следующие статьи копают глубже в Spring Data:
Введение в Spring Data — Spring Data JPA, Spring Data REST и MongoDB

ссылка на оригинал статьи https://habr.com/ru/post/503400/

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

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