Эта статья переведена с7 Things to Know Getting Started With Spring Boot by Ranga Karanam
Spring Boot — сложный фреймворк, поэтому его часто бывает непросто понять. В этом учебном пособии объясняются основные компоненты Spring Boot, включая проекты для начинающих, автоматическую настройку и родительские элементы для начинающих, чтобы помочь новичкам лучше понять и освоить Spring Boot.
Понимание архитектуры Spring Boot
Spring Boot включает следующие компоненты:
- Стартовый проект Spring Boot
- Spring Boot Starter Parent
- Автоматическая конфигурация
Во-первых, мы будем сравнивать весенние ботинки с весны и весна MVC, чтобы помочь понять, что приносит весенние загрузки. После того, как вы понимаете, что может обеспечить Spring Boot, вы можете использовать Spring Boot Boot.
Spring Boot vs Spring MVC vs Spring
Отношения между ними, наиболее важным моментом является:
Spring Boot не конкурирует с Spring и Spring MVC, Spring Boot должен лучше их использовать.
Весенний фреймворк
Важнейшей особенностью фреймворка Spring является внедрение зависимостей, а ядром всех модулей Spring является внедрение зависимостей и инверсия управления (IOC — Inversion of Control).
При правильном использовании внедрения зависимостей и инверсии управления мы можем разрабатывать слабосвязанные приложения, которые легче тестировать.
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 проходитАвтоматическая конфигурацияиStarter Projectрешил эту проблему. Он также предоставляет множество функций, которые упрощают и ускоряют создание готовых к использованию приложений.
Для более подробного сравнения Spring Boot и Spring, Spring MVC, пожалуйста, прочитайте:Spring Boot vs. Spring MVC vs. Spring - How do they compare?
Автоматическая настройка Spring Boot
Spring и Spring MVC имеют множество конфигураций XMl и Java Bean. И Spring Boot решает эту проблему за нас с помощью новой идеи:
Можем ли мы сделать конфигурацию умнее? Когда в приложение добавляется JAR-пакет Spring MVC, можем ли мы автоматически настроить некоторые Java Beans?
- Если в пути к классам есть пакет Hibernate JAR, источник данных настраивается автоматически, как?
- Если в пути к классам есть пакет JAR Spring MAC, сервлет Dispatcher настраивается автоматически, как?
Правила автоматической настройки Spring Boot:
Spring Boot сначала проверит эти две части: одна — это структура, которая существует в пути к классам, а другая — это конфигурация, которая уже существует в приложении. Сочетая эти две части, Spring Boot может обеспечить базовую конфигурацию, требуемую этими платформами, которая является автоматической конфигурацией Spring Boot.
Для подробного объяснения автоматической настройки прочитайте:What is Spring Boot Auto Configuration?
Стартовый проект Spring Boot
Документация Spring Boot описывает проект Starter следующим образом:
Начальные проекты — это набор удобных описаний зависимостей, на которые можно ссылаться в наших проектах. Через стартовый проект мы можем получить все необходимые Spring и связанные с ним технологии «одним окном», вместо того, чтобы искать различные коды случаев и дублировать описания связанных зависимостей, как раньше. Например: если мы хотим использовать Spring и JPA для связывания базы данных, нам просто нужно ввести в наш проект spring-boot-starter-data-jpa, и проект будет собран.
Давайте возьмем пример через Spring Boot Starter Web:
Если мы хотим разработать веб-приложение или службу RESTful, мы можем напрямую использовать Spring Boot Starter Web.
При добавлении Spring Boot Starter Web в зависимости нашего проекта мы видим, что многие другие связанные зависимости также добавляются в приложение, как показано на снимке экрана:
Он содержит множество общих модулей, необходимых для разработки веб-приложения. С Spring Boot Starter Web мы можем легко импортировать и использовать их:
- Spring — ядро, bean-компоненты, контекст, АОП
- Web MVC - Spring MVC
- Джексон — библиотека разбора JSON
- Проверка — Hibernate Validator, API проверки
- Embedded Servlet Container - 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 в приложения, чтобы сделать службы более RESTful.
- spring-boot-starter-security: использовать Spring Security для аутентификации и авторизации
- spring-boot-starter-data-jpa: Spring Data JPA и Hibernate
- spring-boot-starter-cache: включить Spring Framework для поддержки кэширования
- spring-boot-starter-data-rest: предоставление простой службы REST с использованием Spring Data REST.
Для более глубокого понимания начального проекта, пожалуйста, прочитайте:Initializing Projects with Spring Boot Starters - Web and JPA
Spring Boot Starter Parent
В конфигурации pom.xml почти всех проектов Spring Boot в качестве родительской конфигурации используется spring-boot-starter-parent:
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.0.RELEASE</version>
</parent>
Родительские POM позволяют нам лучше управлять несколькими подпроектами или модулями:
- Связанные с конфигурацией: версия Java и другие свойства
- Управление зависимостями: зависимые версии
- Конфигурация плагинов по умолчанию
Для более глубокого понимания Spring Boot Starter Parent прочитайте:Introduction to Spring Boot Starter Parent
Spring Initializr: создание проектов Spring Boot так же быстро, как вождение болида F1
Spring InitializrЭто очень хороший инструмент для инициализации проектов Spring Boot.
Он предоставляет очень простой пользовательский интерфейс, с помощью которого мы можем создавать различные типы проектов Spring, например:
- веб приложение
- REST-сервис
- Пакетное приложение
Давайте попробуем создать проект через Spring Initializr:
Как показано на картинке выше, для этого требуется всего несколько простых шагов:
- Открыть Spring Initializr (start.spring.io/)
- Групповой ввод
com.in28minutes.springboot
- Ввод артефакта
student-services
- выбор зависимости
Web
- Групповой ввод
- Нажмите внизу страницы
Generate Project
кнопка - импортировать проект в
intelliJ
илиEclipse
Вот и все.
Для более глубокого понимания Spring Initializr прочитайте:Spring Initializr - Bootstrap Your Spring Boot Applications at F1 speed!
Spring Boot и встроенный сервер
После того, как мы создали развертываемый пакет, мы можем встроить сервер (например, Tomcat) в пакет развертывания.
Например, для приложения Spring Boot мы можем создать пакет JAR, который содержит встроенный сервер Tomcat (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.M6</version>
<scope>compile</scope>
</dependency>
Как видите, Starter Web уже по умолчанию включает зависимости Starter Tomcat:
- Tomcat — встроенный сервер по умолчанию для Spring Boot.
- Spring Boot также поддерживает Jetty и Undertow.
Для более подробного ознакомления со встроенными серверами прочитайте:Spring Boot and Embedded Servers - Tomcat, Jetty, and Undertow
Spring Data
Официальное описаниепроекты.spring.IO/весна-данные…:
Spring Data предоставляет простой унифицированный уровень доступа к данным на основе модели программирования Spring, сохраняя при этом некоторые характеристики базового хранилища данных. Это позволяет нам легко использовать технологии доступа к данным, реляционные базы данных, нереляционные базы данных, фреймворки для сокращения карт и облачные сервисы.
Короче говоря, Spring Data обеспечивает унифицированную абстракцию, и мы можем использовать унифицированный уровень доступа независимо от базовых разнообразных источников данных.
Spring Data включает в себя следующие подмодули:
- Spring Data JPA — реляционная база данных
- Spring Data MongoDB
- Spring Data REST — инкапсулирует репозиторий Spring Data и предоставляет отличный сервис API REST.
Для более глубокого понимания Spring Data, пожалуйста, прочитайте:Introduction to Spring Data - Spring Data JPA, Spring Data REST, and MongoDB
другие цитаты
- Весенний МВК:Woohoo.YouTube.com/watch?V=BJ N…
- Весенний ботинок:Woohoo.YouTube.com/watch?V=PSP…
- Затмение:woohoo.YouTube.com/watch?V=is 4S…
- Мейвен:Woohoo.YouTube.com/watch?V=0cf…
- Юнит:wooooooooo.YouTube.com/watch?V=oh5 может…
- Мокито:Вухуууууууууууууууууууууууууууууууууууу 2K1 YouTube.com/watch?V=…