![roshka](/data/avatars/m/0/399.jpg?1628803110)
roshka
Организатор
- #1
[IBS] Spring Advanced [Тимур Мухитдинов]
- Ссылка на картинку
Курс посвящен темам, необходимым для профессионального применения Spring Framework на практике, таким как расширенные вопросы применения Spring REST, технологии HATEOAS и CORS, документирование REST-сервисов, сериализация и ограничение данных, передаваемых клиенту, тонкости применения аннотации @Transactional, применение оптимистических транзакций, JWT-авторизация и сервер авторизации OAuth2, практическое применение реактивного программирования с использованием WebFlux, тестирование Spring-сервисов, планировщик задач и Actuator, развертывание в Docker.
Цели
Познакомить слушателей с расширенными темами применения Spring Framework, предоставить примеры применения.
Разбираемые темы
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. Object mapping и валидация (5 ч)
Ограничение данных, передаваемых клиенту: @JsonIgnore, nullifying fields, DTO (1 ч)
Проекции и ограничения в Spring Data REST (1 ч)
Использование MapStruct для автоматического мэппинга в DTO (1 ч)
Пользовательские сериализаторы и десериализаторы (1 ч)
Валидация данных модели с помощью аннотаций javax.validation и кастомных аннотаций (1 ч)
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 ч)
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 мин)
6. Тестирование сервисов Spring (4 ч)
Юнит-тесты с применением Mockito (30 мин)
Интеграционное тестирование (1 ч)
Аннотации тестирования Spring (30 мин)
Фреймворк TestContext (30 мин)
Серверные тесты REST (30 мин)
Тестирование REST сервисов в IntelliJ IDEA (30 мин)
Тестирование WebFlux (30 мин)
7. Spring Планировщики (30 мин)
Аннотация @Scheduled
fixedRate, fixedDelay, initialDelay
использование выражений CRON
8. Spring кэширование (2 ч)
Использование кеширования
Использование и параметры настройки EhCache
@Cacheable
@CacheEvict, @CachePut
@CacheConfig
Conditional кэширование
Java-based кэширование
Кэширование в Spring Data
Кэширование в Spring на основе EhCache
Конфигурирование EhCache
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 мин)
Цели
Познакомить слушателей с расширенными темами применения Spring Framework, предоставить примеры применения.
Разбираемые темы
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. Object mapping и валидация (5 ч)
Ограничение данных, передаваемых клиенту: @JsonIgnore, nullifying fields, DTO (1 ч)
Проекции и ограничения в Spring Data REST (1 ч)
Использование MapStruct для автоматического мэппинга в DTO (1 ч)
Пользовательские сериализаторы и десериализаторы (1 ч)
Валидация данных модели с помощью аннотаций javax.validation и кастомных аннотаций (1 ч)
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 ч)
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 мин)
6. Тестирование сервисов Spring (4 ч)
Юнит-тесты с применением Mockito (30 мин)
Интеграционное тестирование (1 ч)
Аннотации тестирования Spring (30 мин)
Фреймворк TestContext (30 мин)
Серверные тесты REST (30 мин)
Тестирование REST сервисов в IntelliJ IDEA (30 мин)
Тестирование WebFlux (30 мин)
7. Spring Планировщики (30 мин)
Аннотация @Scheduled
fixedRate, fixedDelay, initialDelay
использование выражений CRON
8. Spring кэширование (2 ч)
Использование кеширования
Использование и параметры настройки EhCache
@Cacheable
@CacheEvict, @CachePut
@CacheConfig
Conditional кэширование
Java-based кэширование
Кэширование в Spring Data
Кэширование в Spring на основе EhCache
Конфигурирование EhCache
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 мин)
Зарегистрируйтесь
, чтобы посмотреть скрытый авторский контент.