Spring Advanced
Длительность
40 ак.ч.
Локация
Онлайн
Код
JVA-075
25.11.2024 - 20.12.2024
22.01.2025 - 07.02.2025
69 900 руб.
* Для физических лиц действует скидка 10% Закажите корпоративное обучение с учетом ваших потребностей
Описание
Курс посвящен темам, необходимым для профессионального применения Spring Framework на практике, таким как расширенные вопросы применения Spring REST, технологии HATEOAS и CORS, документирование REST-сервисов, сериализация и ограничение данных, передаваемых клиенту, тонкости применения аннотации @Transactional, применение оптимистических транзакций, JWT-авторизация и сервер авторизации OAuth2, практическое применение реактивного программирования с использованием WebFlux, тестирование Spring-сервисов, планировщик задач и Actuator, развертывание в Docker.После прохождения курса выдается
удостоверение о повышении квалификации государственного образца
удостоверение о повышении квалификации государственного образца
Цели
Познакомить слушателей с расширенными темами применения Spring Framework, предоставить примеры применения.
Целевая аудитория
Разработчики Java, архитекторы Java.
Предварительная подготовка
Уверенное владение Java, знание Spring.
Разбираемые темы
-
1. Spring Data REST - расширенные темы (5 ч)
- 1.1. Spring REST (3 ч)
- - Введение. Обзор Spring REST (1 ч)
- - Условные операции с применением заголовков (ETag, If-Match, If-None-Match, If-modified-since) (30 мин)
- - REST события (30 мин)
- - Модель зрелости REST-сервисов (30 мин)
- - Spring HATEOAS (30 мин)
- 1.2. API RestTemplate и WebClient для написания клиентов REST-сервисов (1 ч)
- 1.3. Документирование REST-сервисов с использованием Swagger и SpringFox (1 ч)
-
2. Object mapping и валидация (5 ч)
- Ограничение данных, передаваемых клиенту: @JsonIgnore, nullifying fields, DTO (1 ч)
- Проекции и ограничения в Spring Data REST (1 ч)
- Использование MapStruct для автоматического мэппинга в DTO (1 ч)
- Пользовательские сериализаторы и десериализаторы (1 ч)
- Валидация данных модели с помощью аннотаций javax.validation и кастомных аннотаций (1 ч)
Домашняя работа: ~2 ч
-
3. Транзакции (6 ч)
- Анотация @Transactional (30 мин)
- Уровни изоляции транзакций (1 ч)
- Распространение транзакций (2 ч)
- Обработка исключений в транзакциях (30 мин)
- Проблема вызова транзакции из того же бина (30 мин)
- Оптимистические блокировки (30 мин)
- Подключение нескольких БД к проекту (30 мин)
- Распределенные транзакции и паттерн SAGA (30 мин)
-
4. Безопасность для REST-сервисов (JWT авторизация и управление ролями) (6 ч)
- Подходы к использованию безопасности в Spring (1 ч)
- Разработка сервера UAA с использованием OAuth2 (1 ч)
- JWT токены (2 ч)
- Использование Spring Security для доступа на основе ролей, демонстрация примеров (2 ч)
Домашняя работа: ~2 ч
-
5. Реактивное программирование на Spring WebFlux (8 ч)
- Обзор реактивного подхода (30 мин)
- Спецификация реактивных потоков в Java 9 (30 мин)
- Классы Mono и Flux (30 мин)
- Операторы (2 ч)
- Реактивные драйверы БД R2DBC (30 мин)
- Реактивный Spring Data (30 мин)
- Построение REST API с использованием WebFlux (1 ч)
- WebClient для получения реактивных данных (30 мин)
- Протокол RSocket (1 ч)
- Реактивный доступ к RabbitMQ (30 мин)
- Реактивные паттерны и бенчмарки (30 мин)
Домашняя работа: ~2 ч
-
6. Тестирование сервисов Spring (4 ч)
- Юнит-тесты с применением Mockito (30 мин)
- Интеграционное тестирование (1 ч)
- Аннотации тестирования Spring (30 мин)
- Фреймворк TestContext (30 мин)
- Серверные тесты REST (30 мин)
- Тестирование REST сервисов в IntelliJ IDEA (30 мин)
- Тестирование WebFlux (30 мин)
Домашняя работа: ~2 ч
-
7. Spring Планировщики (30 мин)
- Аннотация @Scheduled
- fixedRate, fixedDelay, initialDelay
- использование выражений CRON
Домашняя работа: ~30 мин
-
8. Spring кэширование (2 ч)
- Использование кеширования
- Использование и параметры настройки EhCache
- @Cacheable
- @CacheEvict, @CachePut
- @CacheConfig
- Conditional кэширование
- Java-based кэширование
- Кэширование в Spring Data
- Кэширование в Spring на основе EhCache
- Конфигурирование EhCache
Домашняя работа: ~1 ч
-
9. Spring Boot Actuator (1 ч)
- Actuator endpoints
- Метрики в Spring Boot
- Мониторинг и управление через HTTP
- Инструмент мониторинга Spring Boot Admin
-
10. Развертывание приложения Spring (2,5 ч)
- Развертывание в Docker (30 мин)
- Развертывание в nginx as a front serverв качестве фронт-сервера (включая балансировку нагрузки) (30 мин)
- HTTP кэширование при помощи NGINX (30 мин)
- Развертывание приложения Spring с помощью nginx - контейнерная установка, docker-compose (30 мин)
Домашняя работа: ~30 мин
Раcписание курсов
Вид:
Тренеры
Козлов Павел
Специалист в области разработки ПО
Павел работает в Luxoft с 2005 года. За это время он принимал участие в ряде проектов для ведущих российских и зарубежных компаний, таких как Boeing, Почта России, DHL, MVideo. В настоящее время он играет роль ведущего инженера-программиста в проекте по поддержке крупнейшей розничной сети по продаже электроники и бытовой техники в России. Главный интерес Павла - разработка масштабируемых приложений Java, а также предоставление технических решений для повышения производительности и надежности приложений.
Павел работает в Luxoft с 2005 года. За это время он принимал участие в ряде проектов для ведущих российских и зарубежных компаний, таких как Boeing, Почта России, DHL, MVideo. В настоящее время он играет роль ведущего инженера-программиста в проекте по поддержке крупнейшей розничной сети по продаже электроники и бытовой техники в России. Главный интерес Павла - разработка масштабируемых приложений Java, а также предоставление технических решений для повышения производительности и надежности приложений.
Мухитдинов Тимур
Специалист в области разработки ПО
Профессиональный инженер-программист, опытный разработчик ПО с 8 YOE. Имея опыт работы с различными технологиями и подходами, он разрабатывал и внедрял решения в разных областях: платежи, социальные сети, геймдев, система управления складом, служба фулфилмента и доставки и другие. В настоящее время Тимур работает в Booking.com, где развивает платформу партнерских платежей.
Экспертиза распространяется на проектирование и развитие архитектуры серверных приложений, внедрение лучших практик разработки, создания отказоустойчивых систем, работа с техническими требованиями и прочее.
О проектах:
Профессиональный инженер-программист, опытный разработчик ПО с 8 YOE. Имея опыт работы с различными технологиями и подходами, он разрабатывал и внедрял решения в разных областях: платежи, социальные сети, геймдев, система управления складом, служба фулфилмента и доставки и другие. В настоящее время Тимур работает в Booking.com, где развивает платформу партнерских платежей.
Экспертиза распространяется на проектирование и развитие архитектуры серверных приложений, внедрение лучших практик разработки, создания отказоустойчивых систем, работа с техническими требованиями и прочее.
О проектах:
- Ментор популярной онлайн-платформы по обучению программистов, преподаватель, ведущий воркшопов на хакатонах и разработчик курсов.
Отзывы (5)
Очень понравилась открытость тренера, его примеры и объяснения что и как нужно делать, а главное – советы и ответы на вопросы. В общем, Владимир очень хороший педагог, спасибо ему! Порадовало большое количество полезных тем по актуальным технологиям, практические примеры удобно разбиты на маленькие проекты, тренер отвечает на вопросы.
Я доволен этим курсом. Мне были полезны все темы, особенно HATEOAS, Lombok и WebFlux. Впечатление в целом очень хорошее, качественно скомпонованная теория, много примеров, практические задания и хорошая обратная связь. Такое будет полезно даже для тех, кто, как и я знал часть информации, но хотел систематизировать ее и углубиться в тему.
Отличный курс, хорошие учебные материалы. Очень много нового для меня в этом тренинге, самым полезным я считаю модуль Spring Data Rest. Понравилось, что нам объясняли все, что связано с основами Spring, понравились практические упражнения и терпеливость тренера (особенно тот факт, что он ответил на любые вопросы не по теме, но связанные с базовыми знаниями технологии). Благодаря этому тренингу я нашел и восполнил пробелы в своих знаниях.
Понравились: широта охвата материала (мб индивидуально, но курс удовлетворил мои ожидания); компетентность тренера, стиль подачи материала, организованность, заинтересованность тренера качественно передать знания; практические примеры. Очень хорошо преподнесен материал, сразу расширяется кругозор и становится понятно, что можно внедрять в рабочий процесс незамедлительно. Спасибо тренеру Сонькину Владимиру.
Для меня был очень полезен весь курс, что-то знала, чем-то пользовалась, а курс всё структурировал. Понравились практические примеры и интересные задания. Тренер помимо учебных материалов делился кейсами из личного опыта. На примерах показывал и объяснял возможные проблемы, с которыми можно столкнуться, как их решать. Была возможность «включиться» в работу и с тренером разбирать кейсы.
Связанные курсы
Владение каркасом разработки Spring Framework 5
Практический курс по основным возможностям Spring Framework.
Шаг за шагом вы создадите полностью рабочее приложение и научитесь использовать Spring framework на практике.
Spring Security
Spring Security – это самый популярный фреймворк для аутентификации пользователей и ограничения доступа в Enterprise приложении. В данном курсе рассматриваются механизмы аутентификации и авторизации (и их практическое применение).
Онлайн:
03.02.2025 - 14.02.2025
Spring Cloud для Java-разработчиков
Spring Cloud – это проект, который позволяет создавать распределенные приложения с микросервисной архитектурой. Вы познакомитесь с множеством доступных компонентов, детально рассмотрите архитектуру и широкие возможности Spring Cloud.
Java Advanced I: функциональное, асинхронное и реактивное программирование
Курс посвящен современным функциональным, асинхронным и реактивным подходам к разработке на Java, и включает изучение NIO2, CompletableFuture, RxJava, Reactor, R2DBC, SSE, Spring Data reactive, WebClient, reactive WebSocket, RSocket.
Онлайн:
10.02.2025 - 20.02.2025