Similar presentations:
Spring Boot
1.
Spring Bootastondevs.ru
2.
Философский вопрос на 0.5 баллаЧто объединяет все модули Spring?
3.
Зачем нам это, брат?Spring Boot — это, по сути, расширение Spring ’а, которое берет на себя многие шаблонные
задачи, в частности - конфигурацию, необходимую для настройки других модулей Spring.
В большинстве случаев при работе с различными модулями spring, вы будете делать одни и те
же рутинные действия, чтобы избавить нас от этих шаблонных действий, spring вводит такое
понятие, как “opinionated view”. Исходя из этого понятия spring boot берет на себя
ответственность по конфигурации большого количества бинов из других модулей spring, по
дефолту считая, что они будут нужны (в случае, если мы добавляем в зависимости эти модули).
4.
Основные фичи1. Управление зависимостями (стартеры)
2. Встроенные контейнеры сервлетов для упрощения
развертывания приложений
3. Автоконфигурация Spring бинов — везде, где это
возможно
4. Actuator – позволяет осуществлять мониторинг
приложения
5.
Управление зависимостямиЧтобы ускорить процесс управления зависимостями, Spring Boot неявно упаковывает
необходимые сторонние зависимости для каждого типа приложения на основе Spring в так
называемых starter-пакеты (spring-boot-starter-web, spring-boot-starter-data-jpa и т.д.)
Например, если вы хотите начать использовать Spring Data JPA для доступа к базе данных,
просто включите в свой проект зависимость spring-boot-starter-data-jpa и все будет готово
(вам не придется искать совместимые драйверы баз данных и библиотеки Hibernate)
6.
Управление зависимостямиДобавляем в pom.xml родителя:
В нем определены:
1. <pluginManagement> в этом блоке описано 100500 плагинов
2. <dependencyManagement> в этом блоке описано 100500 зависимостей, причем данное
описание не подтянет автоматически в ваш проект эти зависимости, это лишь декларация
зависимостей.
3. Версии зависимостей, для этой сборки Spring Boot
Следующий шаг – добавить зависимость на старте. Заметьте, что мы не указываем версию.
И вуаля, нам доступны все зависимости из этого стартера.
7.
АвтоконфигурацияВходная точка в spring boot приложение выглядит примерно так:
@SpringBootApplication аннотирован:
• @Configuration - Т.е. сам является конфигурацией (в нем можно определять @Bean методы)
• @ComponentScan - включает component scanning
• @EnableAutoConfiguration - тригерит авто конфигурацию
Аннотация @EnableAutoConfiguration в свою очередь аннотирована @Import(AutoConfigurationImportSelector.class),
которая позволяет указать контексту какие дополнительные классы/пакеты нужно просканировать, чтобы там найти
конфигурацию (Те самые AutoConfiguration классы, которые на основе условий (Condition) будут загружать бины)
8.
Автоконфигурация@EnableAutoConfiguration при помощи импортированного AutoConfigurationImportSelector находит все
@AutoConfiguration классы, ищет он их в специальном файле spring.factories.
@AutoConfiguration – в свою очередь аннотирована @Configuration, т.е. позволяет определить бины, которые
попадут в контекст. По сути @AutoConfiguration это обычный @Configuration, только с кучей @Conditional
9.
Вопрос на 1 баллЗачем нужна аннотация @Conditional?
10.
Автоконфигурация11.
Встроенный контейнер сервлетовКаждое Spring Boot web-приложение включает встроенный web-сервер. Посмотрите на список контейнеров
сервлетов, которые поддерживаются "из коробки«.
Разработчикам теперь не надо беспокоиться о настройке контейнера сервлетов и развертывании приложения на
нем. Теперь приложение может запускаться само, как исполняемый jar-файл с использованием встроенного
сервера.
Если вам нужно использовать отдельный HTTP-сервер, для этого достаточно исключить зависимости по
умолчанию. Spring Boot предоставляет отдельные starter-пакеты для разных HTTP-серверов
Создание автономных web-приложений со встроенными серверами не только удобно для разработки, но и
является допустимым решением для приложений корпоративного уровня и становится все более полезно в мире
микросервисов. Возможность быстро упаковать весь сервис (например, аутентификацию пользователя) в
автономном и полностью развертываемом артефакте, который также предоставляет API — делает установку и
развертывание приложения значительно проще.
12.
Если надо, мы можем отступиться от opinionated view и всесконфигрурировать, как нам надо
13.
14.
ActuatorПосле того как вы разработали приложение и развернули его в продакшене, очень важно следить за его
работоспособностью.
Spring Actuator предоставляет несколько готовых конечных точек (endpoints), которые мы можем
использовать для мониторинга работоспособности приложения.
ID
Описание
beans
Отображает полный список всех
Spring-бинов в приложении.
health
Показывает сведения о работоспособности
приложения.
metrics
Показывает информацию о метриках
для текущего приложения.
mappings
Отображает список всех путей
@RequestMapping.
Для того, чтобы получить сведения о состоянии приложения, необходимо перейти по URLадресу localhost:8080/actuator, там вы увидите доступные конечные точки.
software