spring boot что это такое

Spring Boot: быстрое знакомство и старт на примере простого веб-приложения

Авторизуйтесь

Spring Boot: быстрое знакомство и старт на примере простого веб-приложения

spring boot что это такое. Смотреть фото spring boot что это такое. Смотреть картинку spring boot что это такое. Картинка про spring boot что это такое. Фото spring boot что это такое

Senior Software Developer

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

Первоначальная настройка приложения

Переходим на сайт Spring Initializr и подготавливаем минимальный шаблон для нашего будущего приложения:

spring boot что это такое. Смотреть фото spring boot что это такое. Смотреть картинку spring boot что это такое. Картинка про spring boot что это такое. Фото spring boot что это такое

Создание каркаса проекта

В левой части оставляем настройки по умолчанию, кроме версии Java (будет достаточно 8), и заполняем Project Metadata.

В правой части необходимо добавить зависимости, нужные для приложения.

Всё готово, нажимаем GENERATE и получаем архив с исходным кодом проекта. Это минимальный каркас, который импортируем в используемую IDE.

В этом проекте используется IntelliJ IDEA.

spring boot что это такое. Смотреть фото spring boot что это такое. Смотреть картинку spring boot что это такое. Картинка про spring boot что это такое. Фото spring boot что это такое

В следующих диалоговых окнах все настройки оставляем по умолчанию. Единственное, в одном из окон удостоверимся, что имеем ранее установленную JDK соответствующей версии, в данном случае 8.

spring boot что это такое. Смотреть фото spring boot что это такое. Смотреть картинку spring boot что это такое. Картинка про spring boot что это такое. Фото spring boot что это такое

Если JDK не была установлена ранее, её можно скачать с официального сайта.

Все остальные окна кликаем Next и в последнем — Finish.

Кратко рассмотрим структуру проекта. В первую очередь интересны:

Создадим дополнительные пакеты :

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

Создадим класс Task в пакете entity

Класс помечен аннотацией @Entity. Она указывает на то, что данный класс является сущностью и будет сохраняться в БД.

Данная сущность имеет первичный ключ поле id. Поле помечено аннотацией @Id и аннотацией @GeneratedValue, которая задает стратегию генерации первичного ключа как автоматическую генерацию, в этой сущности – целые числа в порядке возрастания.

Создадим интерфейс TaskRepository в пакете repository

Класс унаследован от JpaRepository – интерфейса фреймворка Spring Data, предоставляющего набор стандартных методов JPA для работы с БД. Для данного приложения нет необходимости создавать дополнительные методы.

Создадим класс TaskService в пакете service

Класс содержит три метода для работы с задачами:

Создадим контроллер TaskController в пакете controller

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

Замечание. Более правильно было бы добавить еще один интерфейс TaskService, который будет реализовывать существующий класс TaskService (изменим название на TaskServiceImpl), но в рамках этого приложения делать это не будем.

Создадим index.ftlh – шаблон для Freemarker в каталоге resources/templates

Добавим простой CSS-файл style.css в каталоге resources/static/css:

Структура проекта:

spring boot что это такое. Смотреть фото spring boot что это такое. Смотреть картинку spring boot что это такое. Картинка про spring boot что это такое. Фото spring boot что это такое

Проект готов к запуску и работе

Запускаем первое приложение на Spring Boot

Переходим к классу OrganizerApplication.class. Он был сформирован автоматически на первом шаге конфигурации каркаса проекта. Его содержимое:

Переходим в меню >Run-> Run ‘OrganizerApplication’ или запускаем через сочетание клавиш Shift+F10. Процесс запуска отобразится в консоли ниже.

Переходим в браузер, набираем в адресной строке адрес localhost:8080 и наблюдаем работающий прототип приложения Organizer.

spring boot что это такое. Смотреть фото spring boot что это такое. Смотреть картинку spring boot что это такое. Картинка про spring boot что это такое. Фото spring boot что это такое

Органайзер на Spring Boot

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

Посмотрите также 10 шпаргалок для веб-разработчика. Там есть видеокурс по Spring Boot.

Источник

Национальная библиотека им. Н. Э. Баумана
Bauman National Library

Персональные инструменты

Spring Boot

Содержание

Описание

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

Особенности

Ниже перечислены особенности Spring Boot [Источник 1] :

Системные требования

Spring Boot 2.1.5.RELEASE требует Java 8 и совместим c Java до версии 11 включительно, также требуется Spring Framework 5.1.7.RELEASE или выше. Поддерживаются следующие инструменты сборки:

Инструмент сборкиВерсия
Maven3.3+
Gradle4.4+

Контейнеры сервлетов

Spring Boot поддерживает следующие встроенные контейнеры сервлетов:

СервлетВерсия
Tomcat 9.04.0
Jetty 9.43.1
Undertow 2.04.0

Приложения Spring Boot также могут быть развёрнуты в любом контейнере, совместимом с Servlet 3.1+.

Установка Spring Boot

Spring Boot можно использовать с «классическими» инструментами разработки Java или установить в качестве инструмента командной строки. В любом случае, вам нужен Java SDK v1.8 или выше. Прежде чем начать, необходимо проверить текущую версию Java с помощью следующей команды:

Если вы новичок в Java-разработке или хотите поэкспериментировать с Spring Boot, для начала попробуйте Spring Boot CLI (интерфейс командной строки).

Инструкция по установке для Java-разработчиков

Можно использовать Spring Boot так же, как и любую стандартную библиотеку Java. Для этого необходимо включить соответствующие файлы spring-boot-*.jar в classpath. Spring Boot не требует каких-либо специальных инструментов интеграции, поэтому можно использовать любую IDE или текстовый редактор. Кроме того, в приложении Spring Boot нет ничего особенного, поэтому его можно запускать и отлаживать, как и любую другую программу, написанную на Java.

Хотя возможно копировать Jar-файлы Spring Boot вручную, рекомендуется использовать инструмент сборки, который поддерживает управление зависимостями (например, Maven или Gradle).

Установка с помощью Maven

Установка с помощью Gradle

Gradle Wrapper обеспечивает хороший способ «получения» Gradle, когда нужно создать проект. Это небольшой скрипт и библиотека, которые располагаются вместе с кодом для начальной загрузки процесса сборки.

Установка Spring Boot CLI

Для работы со Spring Boot не обязательно использовать CLI, но это самый быстрый способ получить приложение Spring с нуля.

Пример разработки приложения Spring Boot

Для создания проекта используется Maven. Перед тем, как начать, необходимо открыть терминал и выполнить следующие команды, чтобы убедиться, что установлены подходящие версии Java и Maven:

Создание POM

Добавление зависимостей classpath

Команда mvn dependency:tree печатает древовидное представление зависимостей вашего проекта. Как видно, spring-boot-starter-parent сам по себе не предоставляет никаких зависимостей. Чтобы добавить необходимые зависимости, надо отредактировать pom.xml и добавить зависимость spring-boot-starter-web непосредственно под разделом parent :

Пример кода

Хотя здесь немного кода, довольно многое происходит. Важные части будут рассмотрены в следующих подразделах.

Аннотации @RestController и @RequestMapping

Аннотация @EnableAutoConfiguration

Автоконфигурация разработана так, чтобы хорошо работать со «Стартерами», но эти две концепции не связаны напрямую. Разработчик может свободно выбирать зависимости jar за пределами стартеров. Spring Boot по-прежнему делает все возможное для автоматической настройки приложения.

Метод main

Запуск примера

Создание исполняемого jar-файла

Java не предоставляет стандартного способа загрузки вложенных файлов jar (файлов jar, которые сами содержатся внутри jar). Это может быть проблематично, если разработчик хочет распространять автономное приложение.

Чтобы решить эту проблему, многие разработчики используют «uber» jars. Uber jar упаковывает все классы из всех зависимостей приложения в один архив. Проблема с этим подходом состоит в том, что становится трудно увидеть, какие библиотеки находятся в приложении. Это также может быть проблематично, если одно и то же имя файла (но с разным содержанием) используется в нескольких jar.

Spring Boot использует другой подход и позволяет вкладывать jar напрямую.

После сохранения pom.xml и выполнения mvn package будет выведено следующее:

Системы сборки

Настоятельно рекомендуется выбрать систему сборки, которая поддерживает управление зависимостями и может использовать артефакты, опубликованные в репозитории «Maven Central». Рекомендуется выбрать Maven или Gradle. Так же можно настроить Spring Boot работать с другими системами сборки (например, Apache Ant), но они не особенно хорошо поддерживаются.

Starters

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

Spring Boot предоставляет следующие стартеры в группе org.springframework.boot :

НазваниеОписание
spring-boot-starterОсновной стартер, включающий поддержку автоматической настройки, регистрации и YAML
spring-boot-starter-activemqСтартер для обмена сообщениями JMS с использованием Apache ActiveMQ
spring-boot-starter-amqpСтартер для использования Spring AMQP и Rabbit MQ
spring-boot-starter-aopСтартер для аспектно-ориентированного программирования с Spring AOP и AspectJ
spring-boot-starter-artemisСтартер для обмена сообщениями JMS с использованием Apache Artemis
spring-boot-starter-batchСтартер для использования Spring Batch
spring-boot-starter-cacheСтартер для использования поддержки кэширования Spring Framework
spring-boot-starter-cloud-connectorsСтартер для использования Spring Cloud Connectors, который упрощает подключение к сервисам в облачных платформах, таких как Cloud Foundry и Heroku
spring-boot-starter-data-cassandraСтартер для использования распределенной базы данных Apache Cassandra и Spring Data Cassandra
spring-boot-starter-data-cassandra-reactiveСтартер для использования распределенной базы данных Apache Cassandra и Spring Data Cassandra Reactive
spring-boot-starter-data-couchbaseСтартер для использования документно-ориентированной базы данных Couchbase и Spring Data Couchbase
spring-boot-starter-data-couchbase-reactiveСтартер для использования документно-ориентированной базы данных Couchbase и Spring Data Couchbase Reactive
spring-boot-starter-data-elasticsearchСтартер для использования поискового и аналитического движка Elastic Elasticsearch и Spring Data Elasticsearch
spring-boot-starter-data-jdbcСтартер для использования Spring Data JDBC
spring-boot-starter-data-jpaСтартер для использования Spring Data JPA с Hibernate
spring-boot-starter-data-ldapСтартер для использования Spring Data LDAP
spring-boot-starter-data-mongodbСтартер для использования документно-ориентированной базы данных MongoDB и Spring Data MongoDB
spring-boot-starter-data-mongodb-reactiveСтартер для использования документно-ориентированной базы данных MongoDB и Spring Data MongoDB Reactive
spring-boot-starter-data-neo4jСтартер для использования графической базы данных Neo4j и Spring Data Neo4j
spring-boot-starter-data-redisСтартер для использования хранилища данных значения ключа Redis с Spring Data Redis и клиентом Lettuce
spring-boot-starter-data-redis-reactiveСтартер для использования хранилища данных значения ключа Redis с реактивным Spring Data Redis и клиентом Lettuce
spring-boot-starter-data-restСтартер для демонстрации репозиториев Spring Data через REST с использованием Spring Data REST
spring-boot-starter-data-solrСтартер для использования поисковой платформы Apache Solr с Spring Data Solr
spring-boot-starter-freemarkerСтартер для создания веб-приложений MVC с использованием представлений FreeMarker
spring-boot-starter-groovy-templatesСтартер для создания веб-приложений MVC с использованием представлений Groovy Templates
spring-boot-starter-hateoasСтартер для создания веб-приложения RESTful на основе гипермедиа с использованием Spring MVC и Spring HATEOAS
spring-boot-starter-integrationСтартер для использования Spring Integration
spring-boot-starter-jdbcСтартер для использования JDBC с пулом соединений HikariCP
spring-boot-starter-jerseyСтартер для создания веб-приложений RESTful с использованием JAX-RS и Jersey. Альтернатива spring-boot-starter-web
spring-boot-starter-jooqСтартер для использования jOOQ для доступа к базам данных SQL. Альтернатива spring-boot-starter-data-jpa или spring-boot-starter-jdbc
spring-boot-starter-jsonСтартер для чтения и записи JSON
spring-boot-starter-jta-atomikosСтартер для использования транзакций JTA Atomikos
spring-boot-starter-jta-bitronixСтартер для транзакций JTA с использованием Bitronix
spring-boot-starter-mailСтартер для использования поддержки электронной почты Java Mail и Spring Framework
spring-boot-starter-mustacheСтартер для создания веб-приложений с использованием Mustache views
spring-boot-starter-oauth2-clientСтартер для использования клиентских функций Spring Security OAuth2 / OpenID Connect
spring-boot-starter-oauth2-resource-serverСтартер для использования функций сервера ресурсов Spring Security OAuth2
spring-boot-starter-quartzСтартер для использования планировщика Quartz
spring-boot-starter-securityСтартер для использования Spring Security
spring-boot-starter-testСтартер для тестирования приложений Spring Boot с библиотеками, включая JUnit, Hamcrest и Mockito
spring-boot-starter-thymeleafСтартер для создания веб-приложений MVC с использованием представлений Thymeleaf
spring-boot-starter-validationСтартер для использования Java Bean Validation с Hibernate Validator
spring-boot-starter-webСтартер для создания веб, в том числе RESTful, приложений, использующих Spring MVC. Использование Tomcat в качестве встроенного контейнера сервлетов по умолчанию
spring-boot-starter-web-servicesСтартер для использования Spring Web Services
spring-boot-starter-webfluxСтартер для создания приложений WebFlux с использованием поддержки React Web в Spring Framework
spring-boot-starter-websocketСтартер для создания приложений WebSocket с использованием поддержки Spring Framework WebSocket

Spring Boot также включает в себя следующие средства запуска, которые можно использовать, если необходимо исключить или поменять конкретные технические аспекты:

Источник

Введение в Spring Boot: создание простого REST API на Java

spring boot что это такое. Смотреть фото spring boot что это такое. Смотреть картинку spring boot что это такое. Картинка про spring boot что это такое. Фото spring boot что это такое

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

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

1. Представляем Spring Boot

Авторы Spring решили предоставить разработчикам некоторые утилиты, которые автоматизируют процедуру настройки и ускоряют процесс создания и развертывания Spring-приложений, под общим названием Spring Boot

Spring Boot — это полезный проект, целью которого является упрощение создания приложений на основе Spring. Он позволяет наиболее простым способом создать web-приложение, требуя от разработчиков минимум усилий по его настройке и написанию кода

2. Особенности Spring Boot

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

2.1. Простота управления зависимостями

Чтобы ускорить процесс управления зависимостями, Spring Boot неявно упаковывает необходимые сторонние зависимости для каждого типа приложения на основе Spring и предоставляет их разработчику посредством так называемых starter-пакетов (spring-boot-starter-web, spring-boot-starter-data-jpa и т.д.)

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

Например, если вы хотите начать использовать Spring Data JPA для доступа к базе данных, просто включите в свой проект зависимость spring-boot-starter-data-jpa и все будет готово (вам не придется искать совместимые драйверы баз данных и библиотеки Hibernate)

Если вы хотите создать Spring web-приложение, просто добавьте зависимость spring-boot-starter-web, которая подтянет в проект все библиотеки, необходимые для разработки Spring MVC-приложений, таких как spring-webmvc, jackson-json, validation-api и Tomcat

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

Следовательно, при использовании Spring Boot, файл pom.xml содержит намного меньше строк, чем при использовании его в Spring-приложениях

Обратитесь к документации, чтобы ознакомиться со всеми Spring Boot starter-пакетами

2.2. Автоматическая конфигурация

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

После выбора подходящего starter-пакета, Spring Boot попытается автоматически настроить Spring-приложение на основе добавленных вами jar-зависимостей

Например, если вы добавите Spring-boot-starter-web, Spring Boot автоматически сконфигурирует такие зарегистрированные бины, как DispatcherServlet, ResourceHandlers, MessageSource

Если вы используете spring-boot-starter-jdbc, Spring Boot автоматически регистрирует бины DataSource, EntityManagerFactory, TransactionManager и считывает информацию для подключения к базе данных из файла application.properties

Если вы не собираетесь использовать базу данных, и не предоставляете никаких подробных сведений о подключении в ручном режиме, Spring Boot автоматически настроит базу в памяти, без какой-либо дополнительной конфигурации с вашей стороны (при наличии H2 или HSQL библиотек)

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

2.3. Встроенная поддержка сервера приложений — контейнера сервлетов

Каждое Spring Boot web-приложение включает встроенный web-сервер. Посмотрите на список контейнеров сервлетов, которые поддерживаются «из коробки»

Разработчикам теперь не надо беспокоиться о настройке контейнера сервлетов и развертывании приложения на нем. Теперь приложение может запускаться само, как исполняемый jar-файл с использованием встроенного сервера

Если вам нужно использовать отдельный HTTP-сервер, для этого достаточно исключить зависимости по умолчанию. Spring Boot предоставляет отдельные starter-пакеты для разных HTTP-серверов

Создание автономных web-приложений со встроенными серверами не только удобно для разработки, но и является допустимым решением для приложений корпоративного уровня и становится все более полезно в мире микросервисов. Возможность быстро упаковать весь сервис (например, аутентификацию пользователя) в автономном и полностью развертываемом артефакте, который также предоставляет API — делает установку и развертывание приложения значительно проще

3. Требования к установке Spring Boot

Для настройки и запуска Spring Boot приложений требуется следующее:

4. Создание Spring Boot приложения

Теперь давайте перейдем к практике и реализуем очень простой REST API для приема платежей, используя возможности Spring Boot

4.1. Создание web-проекта с использованием Maven

Создайте Maven-проект в используемой вами IDE, назвав его SpringBootRestService

Обязательно используйте версию Java 8+, поскольку Spring Boot не работает с более ранними версиями

4.2. Конфигурация pom.xml

Вторым шагом необходимо настроить Spring Boot в файле pom.xml

Все приложения Spring Boot конфигурируются от spring-boot-starter-parent, поэтому перед дальнейшим определением зависимостей, добавьте starter-parent следующим образом:

Т.к. мы создаем REST API, то необходимо в качестве зависимости использовать spring-boot-starter-web, которая неявно определяет все остальные зависимости, такие как spring-core, spring-web, spring-webmvc, servlet api, и библиотеку jackson-databind, поэтому просто добавьте в pom.xml следующее:

Теперь следующие jar-библиотеки автоматически импортируются в ваш проект:

spring boot что это такое. Смотреть фото spring boot что это такое. Смотреть картинку spring boot что это такое. Картинка про spring boot что это такое. Фото spring boot что это такое

Следующий шаг — добавляем Spring Boot плагин:

Последний шаг — сделать так, чтобы Maven генерировал исполняемый jar-файл при сборке:

Ниже приведен полный файл pom.xml:

Как видите, используя одну зависимость, мы можем создать полностью функциональное web-приложение

4.3. Создание ресурсов REST

Теперь мы собираемся создать контроллер платежей вместе с POJO-классами для запросов и ответов

Напишем класс запроса платежа:

А также класс, обрабатывающий базовый ответ, возвращаемый нашим сервисом:

А теперь создадим контроллер:

4.4. Создание основного класса приложения

Этот последний шаг заключается в создании класса конфигурации и запуска приложения. Spring Boot поддерживает новую аннотацию @SpringBootApplication, которая эквивалентна использованию @Configuration, @EnableAutoConfiguration и @ComponentScan с их атрибутами по умолчанию

Таким образом, вам просто нужно создать класс, аннотированный с помощью @SpringBootApplication, а Spring Boot включит автоматическую настройку и отсканирует ваши ресурсы в текущем пакете:

5. Развертывание приложения Spring Boot

Теперь давайте воспользуемся третьей замечательной особенностью Spring Boot — это встроенный сервер. Все, что нам нужно сделать — это создать исполняемый jar-файл с помощью Maven и запустить его, как обычное автономное приложение:

Наш REST API запущен и готов обслуживать запросы через порт 8080 (по умолчанию)

В этой статье мы рассмотрели возможности Spring Boot и создали полностью рабочий пример с использованием встроенного сервера

В переводе обновили информацию:

UPDATE:

Как заметил Lure_of_Chaos, теперь уже все можно сделать автоматически через SPRING INITIALIZR. Причем не выходя из любимой JetBrains IntelliJ IDEA.

Источник

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

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