Джокер
Администратор
- Регистрация
- 1 Янв 2015
- Сообщения
- 146.228
- Реакции
- 78.226
Складчина: Spring Advanced [IBS] [Мухитдинов Тимур]
Курс посвящен темам, необходимым для профессионального применения 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-сервисов (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 мин)
Для возможности скачивать складчины и сливы курсов нужно зарегистрироваться
Возможно, Вас ещё заинтересует:
- Вектор мультивселенной: почему мы летим со скоростью света [Вячеслав Алексеев]
- 5 спасателей гардероба» Архитектура базового гардероба [Виктория Суделя]
- Fullstack разработчик с нуля [Genius Space] [Богдан Лущенко, Кристина Малитовская, Дмитрий Рябовол]
- Наставничество по вайбкодингу []
- Лекторий (июль 2026) [Павел Бутузов, Роман Воробьев, Александр Полищук]
- Бизнес аналитик в IT [Genius Space] [Лолита Пальоха]
- Развитие Внимания. Искусство быть здесь [Владимир Осипов]
- Мини диджитал агентство [Genius Space] [Матвеев Иван, Илья Крабовский, Максим Сенченко]
- Html/css-специалист [Genius Space] [Дмитрий Рябовол]
- Project Manager в IT [Genius Space] [Марго Слободяник]