Spring Advanced
О чём курс
Вам нужен инструмент для масштабирования высоконагруженных Java-приложений — здесь разбирают, как перейти от базовых REST-сервисов к реактивному стеку Spring WebFlux. Вы научитесь управлять сложными транзакциями, внедрять JWT-авторизацию и настраивать реактивную работу с базами данных через R2DBC. Внутри разбираются подходы к кэшированию через EhCache, мониторинг систем с помощью Actuator и контейнеризация приложений через Docker и Nginx. Курс ориентирован на разработчиков, которые хотят автоматизировать маппинг данных через MapStruct, внедрить стандарты HATEOAS и освоить протокол RSocket. В результате вы научитесь проектировать отказоустойчивые сервисы с профессиональным тестированием и развертыванием в продакшн-контуре.
Программа обучения
- Spring Data REST – расширенные темы
- Spring Data REST
- Условные операции с применением заголовков (ETag, If-Match, If-None-Match, If-modified-since)
- REST-события
- Модель зрелости REST-сервисов
- Spring HATEOAS
- API RestTemplate и WebClient для написания клиентов REST-сервисов
- Документирование REST-сервисов с использованием Swagger и SpringFox
- Домашняя работа
- Object Mapping и валидация
- Ограничение данных, передаваемых клиенту: @JsonIgnore, nullifying fields, DTO
- Проекции и ограничения в Spring Data REST
- Использование MapStruct для автоматического мэппинга в DTO
- Пользовательские сериализаторы и десериализаторы
- Валидация данных модели с помощью аннотаций javax.validation и кастомных аннотаций
- Домашняя работа
- Транзакции
- Анотация @Transactional
- Распространение транзакций
- Уровни изоляции транзакций
- Обработка исключений в транзакциях
- Безопасность для REST-сервисов (JWT авторизация и управление ролями)
- Подходы к использованию безопасности в Spring
- Разработка сервера UAA с использованием OAuth2
- JWT токены – 1 ч
- Использование Spring Security для доступа на основе ролей
- Домашняя работа
- Реактивное программирование на Spring WebFlux
- Обзор реактивного подхода
- Классы Mono и Flux
- Операторы
- Реактивные драйверы БД R2DBC
- Реактивный Spring Data
- Построение REST API с использованием WebFlux
- WebClient для получения реактивных данных
- Протокол RSocket
- Реактивный доступ к RabbitMQ
- Реактивные паттерны и бенчмарки
- Домашняя работа
- Тестирование сервисов Spring
- Юнит-тесты с применением Mockito
- Интеграционное тестирование
- Аннотации тестирования Spring
- Фреймворк TestContext
- Серверные тесты REST
- Тестирование REST сервисов в IntelliJ IDEA
- Тестирование WebFlux
- Домашняя работа
- Spring планировщики
- Аннотация @Scheduled
- fixedRate, fixedDelay, initialDelay
- Использование выражений CRON
- Домашняя работа
- Spring кэширование
- Использование кэширования
- @Cacheable
- @CacheEvict, @CachePut
- @CacheConfig
- Conditional кэширование
- Java-based кэширование
- Кэширование в Spring на основе EhCache
- Конфигурирование EhCache
- Домашняя работа
- Spring Boot Actuator
- Actuator endpoints
- Метрики в Spring Boot
- Мониторинг и управление через HTTP
- Инструмент мониторинга Spring Boot Admin
- Развертывание приложения Spring
- Развертывание в Docker
- Развертывание в nginx as a front server в качестве фронт-сервера (включая балансировку нагрузки)
- Развертывание приложения Spring с помощью nginx - контейнерная установка, docker-compose
- Домашняя работа
Другие материалы автора 1
ВС Владимир Сонькин Все материалыОтзывов пока нет. Будьте первым!
Этот курс сейчас в процессе организации складчины. Нажмите кнопку «Записаться» и ожидайте старта — вам придёт уведомление. Когда складчина стартует, в карточке курса будет указан актуальный взнос. Текущая цена пока в процессе формирования и может отличаться от финальной.
Да, мы стремимся, чтобы финальный взнос был не больше ≈10% от оригинальной цены курса. Чем больше участников записывается в складчину, тем ниже выходит взнос для каждого.
Нажмите кнопку «Записаться» и авторизуйтесь на сайте через email (через ту же почту, которую будете использовать для входа). В личном кабинете вас будут ждать инструкции, как пригласить других участников — чем больше людей записалось, тем быстрее стартует складчина и тем ниже взнос. Как только складчина готова к приобретению, вам придёт уведомление.