Улучшаемые навыки
Spring
Spring Boot
Spring Security
Микросервисы
REST API
Web Services
Hibernate
JPA
Thymeleaf
Maven
Gradle
Kubernetes
Docker
CI/CD
JUnit
JUnit
Mockito
Асинхронное программирование
WebSocket
GraphQL
Оптимизация производительности
Безопасность приложений
DevOps
Cloud Native
AWS
Google Cloud
Инструменты
Docker
IntelliJ IDEA
Apache Maven
Чему вы научитесь
01
Оптимизировать производительность приложений с использованием Spring Framework.
02
Настроить и использовать Spring Boot для быстрой разработки и деплоя приложений.
03
Реализовывать безопасность приложений с помощью Spring Security.
04
Интегрировать RESTful API и Web Services в свои проекты.
05
Проводить юнит-тестирование и интеграционное тестирование с JUnit и Mockito.
06
Разрабатывать асинхронные приложения с использованием Spring WebFlux.
07
Использовать WebSocket для реализации реального времени взаимодействия.
08
Работать с GraphQL для создания гибких API.
09
Использовать Spring Data для работы с различными типами баз данных.
10
Реализовывать сложные бизнес-процессы с помощью Spring Integration.
11
Обрабатывать большие объемы данных с помощью Spring Batch.
Программа курса
01
Spring Data REST - расширенные темы (5 ч)
1. Spring REST (3 ч)
Введение. Обзор Spring REST (1 ч)
Условные операции с применением заголовков (ETag, If-Match, If-None-Match, If-modified-since) (30 мин)
REST события (30 мин)
Модель зрелости REST-сервисов (30 мин)
Spring HATEOAS (30 мин)
2. API RestTemplate и WebClient для написания клиентов REST-сервисов (1 ч)
3. Документирование REST-сервисов с использованием Swagger и SpringFox (1 ч)
Домашняя работа: ~2 ч
02
Object mapping и валидация (5 ч)
Ограничение данных, передаваемых клиенту: @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 мин)
04
Безопасность для REST-сервисов (JWT авторизация и управление ролями) (6 ч)
Подходы к использованию безопасности в Spring (1 ч)
Разработка сервера UAA с использованием OAuth2 (1 ч)
JWT токены (2 ч)
Использование Spring Security для доступа на основе ролей, демонстрация примеров (2 ч)
Домашняя работа: ~2 ч
05
Реактивное программирование на 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 ч
06
Тестирование сервисов Spring (4 ч)
Юнит-тесты с применением Mockito (30 мин)
Интеграционное тестирование (1 ч)
Аннотации тестирования Spring (30 мин)
Фреймворк TestContext (30 мин)
Серверные тесты REST (30 мин)
Тестирование REST сервисов в IntelliJ IDEA (30 мин)
Тестирование WebFlux (30 мин)
Домашняя работа: ~2 ч
07
Spring Планировщики (30 мин)
Аннотация @Scheduled
fixedRate, fixedDelay, initialDelay
использование выражений CRON
Домашняя работа: ~30 мин
08
Spring кэширование (2 ч)
Использование кеширования
Использование и параметры настройки EhCache
@Cacheable
@CacheEvict, @CachePut
@CacheConfig
Conditional кэширование
Java-based кэширование
Кэширование в Spring Data
Кэширование в Spring на основе EhCache
Конфигурирование EhCache
Домашняя работа: ~1 ч
09
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 мин
Для кого
Разработчик
Предварительная подготовка
Уверенное владение Java, знание Spring.
Расписание курсов
Курс проводят
Козлов Павел
Специалист в области разработки ПО
О тренере
Павел в IT отрасли с 2005 года. В настоящее время занимает позицию Главного архитектора в компании IBS.
За время свей профессиональной деятельности принимал участие в многочисленных проектах для ведущих российских и зарубежных компаний, таких как Boeing, Почта России, DHL, MVideo.
Главный интерес Павла - разработка масштабируемых приложений на Java, а также предоставление технических решений для повышения производительности и надежности приложений.