
JVA-075 Spring Advanced
Начало: По мере набора группы
Длительность: 1 неделя
СертификатОнлайн
Описание курса
Погрузитесь в мир продвинутого Java Spring и откройте новые горизонты в разработке современных приложений. Этот курс не только углубит ваше понимание фреймворка, но и научит вас оптимизировать производительность и безопасность приложений, используя последние практики и инструменты. Курс посвящен темам, необходимым для профессионального применения Spring Framework на практике, таким как документирование REST-сервисов, сериализация данных, транзакции в Spring, JWT-авторизация, практическое применение WebFlux, тестирование, развертывание в Docker и многим другим.
- Spring REST (3 ч):
- Введение. Обзор Spring REST (1 ч).
- Условные операции с применением заголовков (ETag, If-Match, If-None-Match, If-modified-since) (30 мин).
- REST события (30 мин).
- Модель зрелости REST-сервисов (30 мин).
- Spring HATEOAS (30 мин).
- API RestTemplate и WebClient для написания клиентов REST-сервисов (1 ч).
- Документирование REST-сервисов с использованием Swagger и SpringFox (1 ч).
- Домашняя работа: ~2 ч.
- Ограничение данных, передаваемых клиенту: @JsonIgnore, nullifying fields, DTO (1 ч).
- Проекции и ограничения в Spring Data REST (1 ч).
- Использование MapStruct для автоматического мэппинга в DTO (1 ч).
- Пользовательские сериализаторы и десериализаторы (1 ч).
- Валидация данных модели с помощью аннотаций javax.validation и кастомных аннотаций (1 ч).
- Домашняя работа: ~2 ч.
- Аннотация @Transactional (30 мин).
- Уровни изоляции транзакций (1 ч).
- Распространение транзакций (2 ч).
- Обработка исключений в транзакциях (30 мин).
- Проблема вызова транзакции из того же бина (30 мин).
- Оптимистические блокировки (30 мин).
- Подключение нескольких БД к проекту (30 мин).
- Распределенные транзакции и паттерн SAGA (30 мин).
- Подходы к использованию безопасности в Spring (1 ч).
- Разработка сервера UAA с использованием OAuth2 (1 ч).
- JWT токены (2 ч).
- Использование Spring Security для доступа на основе ролей, демонстрация примеров (2 ч).
- Домашняя работа: ~2 ч.
- Обзор реактивного подхода (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 ч.
- Юнит-тесты с применением Mockito (30 мин).
- Интеграционное тестирование (1 ч).
- Аннотации тестирования Spring (30 мин).
- Фреймворк TestContext (30 мин).
- Серверные тесты REST (30 мин).
- Тестирование REST сервисов в IntelliJ IDEA (30 мин).
- Тестирование WebFlux (30 мин).
- Домашняя работа: ~2 ч.
- Аннотация @Scheduled, fixedRate, fixedDelay, initialDelay, использование выражений CRON.
- Домашняя работа: ~30 мин.
- Использование кэширования:
- Использование и параметры настройки EhCache.
- @Cacheable, @CacheEvict, @CachePut.
- @CacheConfig.
- Conditional кэширование.
- Java-based кэширование.
- Кэширование в Spring Data.
- Кэширование в Spring на основе EhCache.
- Конфигурирование EhCache.
- Домашняя работа: ~1 ч.
- Actuator endpoints.
- Метрики в Spring Boot.
- Мониторинг и управление через HTTP.
- Инструмент мониторинга Spring Boot Admin.
- Развертывание в Docker (30 мин).
- Развертывание в nginx в качестве фронт-сервера (включая балансировку нагрузки) (30 мин).
- HTTP кэширование при помощи NGINX (30 мин).
- Развертывание приложения Spring с помощью nginx - контейнерная установка, docker-compose (30 мин).
- Домашняя работа: ~30 мин.