Spring Advanced [IBS] [Мухитдинов Тимур]

Fargo

Администратор
Регистрация
2 Дек 2015
Сообщения
233.558
Реакции
755.725
**Складчина: Spring Advanced [IBS] [Мухитдинов Тимур]**

Курс посвящен расширенным темам применения Spring Framework на практике, включая Spring REST, HATEOAS, CORS, документирование REST-сервисов, управление данными, @Transactional, оптимистические транзакции, JWT-авторизацию, OAuth2 сервер, реактивное программирование с WebFlux, тестирование сервисов, планировщики задач, Actuator и развертывание в Docker.

**Цели курса:**
Познакомить слушателей с расширенными темами Spring Framework и предоставить примеры их практического применения.

**Разбираемые темы:**

1. **Spring Data REST**
- Введение в Spring REST
- Условные операции с заголовками
- REST события
- Модель зрелости REST-сервисов
- Spring HATEOAS
- Применение API RestTemplate и WebClient
- Документирование REST-сервисов с Swagger и SpringFox

2. **Object mapping и валидация**
- Ограничение данных, @JsonIgnore, DTO
- Проекции и ограничения в Spring Data REST
- Использование MapStruct для автоматического мэппинга в DTO
- Пользовательские сериализаторы и десериализаторы
- Валидация данных модели с помощью аннотаций javax.validation

3. **Транзакции**
- Аннотация @Transactional
- Уровни изоляции и распространение транзакций
- Обработка исключений
- Оптимистические блокировки
- Распределенные транзакции и паттерн SAGA

4. **Безопасность для REST-сервисов**
- Подходы к безопасности в Spring
- Разработка сервера UAA с OAuth2
- JWT токены
- Использование Spring Security для управления ролями

5. **Реактивное программирование на Spring WebFlux**
- Обзор реактивного подхода
- Спецификация реактивных потоков
- Основные классы и операторы
- Реактивные драйверы БД и Spring Data
- Построение REST API с WebFlux
- Протокол RSocket и доступ к RabbitMQ
- Реактивные паттерны и бенчмарки

6. **Тестирование Spring-сервисов**
- Юнит-тесты с Mockito
- Интеграционное тестирование
- Аннотации тестирования Spring и фреймворк TestContext
- Тестирование REST-сервисов и WebFlux

7. **Spring Планировщики**
- Аннотация @Scheduled
- Использование выражений CRON

8. **Spring кэширование**
- Использование и настройка EhCache
- Аннотации @Cacheable, @CacheEvict, @CachePut
- Conditional кэширование
- Кэширование в Spring Data
- Конфигурирование EhCache

9. **Spring Boot Actuator**
- Actuator endpoints и метрики в Spring Boot
- Мониторинг и управление через HTTP
- Инструмент мониторинга Spring Boot Admin

10. **Развертывание приложения Spring**
- Развертывание в Docker
- Развертывание в nginx (балансировка нагрузки)
- HTTP кэширование с NGINX
- Контейнерная установка приложения Spring с docker-compose.
 
Сверху