Курс: JVA-075 new
Длительность: 30 ч.
Длительность: 30 ч.
Описание
Курс посвящен темам, необходимым для профессионального применения Spring Framework на практике, таким как расширенные вопросы применения Spring REST, технологии HATEOAS и CORS, документирование REST-сервисов, сериализация и ограничение данных, передаваемых клиенту, тонкости применения аннотации @Transactional, применение оптимистических транзакций, JWT-авторизация и сервер авторизации OAuth2, практическое применение реактивного программирования с использованием WebFlux, тестирование Spring-сервисов, планировщик задач и Actuator, развертывание в Docker.Разбираемые темы
1. Spring Data REST – расширенные темы (4 ч).- Spring Data REST (2 ч)
- Условные операции с применением заголовков (ETag, If-Match, If-None-Match, If-modified-since) – 0,5 ч
- REST-события – 0,5 ч
- Модель зрелости REST-сервисов – 0,5 ч
- Spring HATEOAS – 0,5 ч
- API RestTemplate и WebClient для написания клиентов REST-сервисов (1 ч)
- Документирование REST-сервисов с использованием Swagger и SpringFox (1 ч)
- Домашняя работа (~2 ч)
2. Object Mapping и валидация (4 ч).
- Ограничение данных, передаваемых клиенту: @JsonIgnore, nullifying fields, DTO – 0,5 ч
- Проекции и ограничения в Spring Data REST – 0,5 ч
- Использование MapStruct для автоматического мэппинга в DTO – 1 ч
- Пользовательские сериализаторы и десериализаторы – 1 ч
- Валидация данных модели с помощью аннотаций javax.validation и кастомных аннотаций – 1 ч
- Домашняя работа (~2 ч)
3. Транзакции (3 ч).
- Анотация @Transactional – 0,5 ч
- Распространение транзакций – 1 ч
- Уровни изоляции транзакций – 1 ч
- Обработка исключений в транзакциях – 0,5 ч
4. Безопасность для REST-сервисов (JWT авторизация и управление ролями) (4 ч).
- Подходы к использованию безопасности в Spring – 1 ч
- Разработка сервера UAA с использованием OAuth2 – 1 ч
- JWT токены – 1 ч
- Использование Spring Security для доступа на основе ролей – 1 ч
- Домашняя работа (~2 ч)
5. Реактивное программирование на Spring WebFlux (7 ч).
- Обзор реактивного подхода – 0,5 ч
- Классы Mono и Flux – 0,5 ч
- Операторы – 1,5 ч
- Реактивные драйверы БД R2DBC – 0,5 ч
- Реактивный Spring Data – 0,5 ч
- Построение REST API с использованием WebFlux – 1 ч
- WebClient для получения реактивных данных – 0,5 ч
- Протокол RSocket – 1 ч
- Реактивный доступ к RabbitMQ – 0,5 ч
- Реактивные паттерны и бенчмарки – 0,5 ч
- Домашняя работа (~2 ч)
6. Тестирование сервисов Spring (4 ч).
- Юнит-тесты с применением Mockito – 0,5 ч
- Интеграционное тестирование – 1 ч
- Аннотации тестирования Spring – 0,5 ч
- Фреймворк TestContext – 0,5 ч
- Серверные тесты REST – 0,5 ч
- Тестирование REST сервисов в IntelliJ IDEA – 0,5 ч
- Тестирование WebFlux – 0,5 ч
- Домашняя работа (~2 ч)
7. Spring планировщики (0,5 ч).
- Аннотация @Scheduled
- fixedRate, fixedDelay, initialDelay
- Использование выражений CRON
- Домашняя работа (~0,5 ч)
8. Spring кэширование (1 ч).
- Использование кэширования
- @Cacheable
- @CacheEvict, @CachePut
- @CacheConfig
- Conditional кэширование
- Java-based кэширование
- Кэширование в Spring на основе EhCache
- Конфигурирование EhCache
- Домашняя работа (~1 ч)
9. Spring Boot Actuator (1 час).
- Actuator endpoints
- Метрики в Spring Boot
- Мониторинг и управление через HTTP
- Инструмент мониторинга Spring Boot Admin
10. Развертывание приложения Spring (1,5 часа).
- Развертывание в Docker – 0,5 ч
- Развертывание в nginx as a front server в качестве фронт-сервера (включая балансировку нагрузки) – 0,5 ч
- Развертывание приложения Spring с помощью nginx - контейнерная установка, docker-compose – 0,5 ч
- Домашняя работа (~0,5 ч)
Цели
Познакомить слушателей с расширенными темами применения Spring Framework, предоставить примеры применения.Целевая аудитория
Разработчики Java, архитекторы Java.Предварительная подготовка
Уверенное владение Java, знание Spring.
После окончания курса выдаётся сертификат на бланке Luxoft Training