Spring Advanced
Курс посвящен темам, необходимым для профессионального применения Spring Framework на практике, таким как документирование REST-сервисов, сериализация данных, транзакции в Spring, JWT-авторизация, практическое применение WebFlux, тестирование, развертывание в Docker и многим другим.
40 ак.ч.
Онлайн
JVA-075
Spring Advanced
Записаться на курс
Длительность
40 ак.ч.
Локация
Онлайн
Код
JVA-075
Расписание и цены
22.01.2025 - 07.02.2025
69 900 руб.
* Для физических лиц действует скидка 10% Закажите корпоративное обучение с учетом ваших потребностей
Spring Advanced
Записаться на курс
Длительность
40 ак.ч.
Локация
Онлайн
Код
JVA-075
Расписание и цены
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 ч
  • 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писание курсов
Вид:
22.01.2025 - 07.02.2025
8:00-11:00
Локация:Онлайн
Длительность:40 ак.ч.
Время:8:00-11:00
69 900 руб.
Записаться
Смотреть полное расписание
Тренеры
Мухитдинов Тимур
Специалист в области разработки ПО
Профессиональный инженер-программист, опытный разработчик ПО с 8 YOE. Имея опыт работы с различными технологиями и подходами, он разрабатывал и внедрял решения в разных областях: платежи, социальные сети, геймдев, система управления складом, служба фулфилмента и доставки и другие. В настоящее время Тимур работает в Booking.com, где развивает платформу партнерских платежей.

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

О проектах:
  • Ментор популярной онлайн-платформы по обучению программистов, преподаватель, ведущий воркшопов на хакатонах и разработчик курсов.
Отзывы (5)
Очень понравилась открытость тренера, его примеры и объяснения что и как нужно делать, а главное – советы и ответы на вопросы. В общем, Владимир очень хороший педагог, спасибо ему! Порадовало большое количество полезных тем по актуальным технологиям, практические примеры удобно разбиты на маленькие проекты, тренер отвечает на вопросы.
Участник тренинга
Я доволен этим курсом. Мне были полезны все темы, особенно HATEOAS, Lombok и WebFlux. Впечатление в целом очень хорошее, качественно скомпонованная теория, много примеров, практические задания и хорошая обратная связь. Такое будет полезно даже для тех, кто, как и я знал часть информации, но хотел систематизировать ее и углубиться в тему.
Участник тренинга
Отличный курс, хорошие учебные материалы. Очень много нового для меня в этом тренинге, самым полезным я считаю модуль Spring Data Rest. Понравилось, что нам объясняли все, что связано с основами Spring, понравились практические упражнения и терпеливость тренера (особенно тот факт, что он ответил на любые вопросы не по теме, но связанные с базовыми знаниями технологии). Благодаря этому тренингу я нашел и восполнил пробелы в своих знаниях.
Участник тренинга
Понравились: широта охвата материала (мб индивидуально, но курс удовлетворил мои ожидания); компетентность тренера, стиль подачи материала, организованность, заинтересованность тренера качественно передать знания; практические примеры. Очень хорошо преподнесен материал, сразу расширяется кругозор и становится понятно, что можно внедрять в рабочий процесс незамедлительно. Спасибо тренеру Сонькину Владимиру.
Участник тренинга
Для меня был очень полезен весь курс, что-то знала, чем-то пользовалась, а курс всё структурировал. Понравились практические примеры и интересные задания. Тренер помимо учебных материалов делился кейсами из личного опыта. На примерах показывал и объяснял возможные проблемы, с которыми можно столкнуться, как их решать. Была возможность «включиться» в работу и с тренером разбирать кейсы.
Участник тренинга
Показать все отзывы
Связанные курсы
Владение каркасом разработки Spring Framework 5
Практический курс по основным возможностям Spring Framework. Шаг за шагом вы создадите полностью рабочее приложение и научитесь использовать Spring framework на практике.
Онлайн:
10.02.2025 - 21.02.2025
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
Смотреть каталог
Ваши преимущества
Экспертность
Тренеры-эксперты из реальных проектов крупнейших компаний, лидеров в своей отрасли
Живое обучение
“Живая” коммуникация с тренером даже в онлайн-формате
Практика
Максимально наполненные практикой занятия, работа в группах, выполнение домашних заданий
Пользователь только что записался на курс ""
Спасибо!
Форма отправлена успешно.