JavaRush/Курсы/Курс Spring in Production

Курс Spring in Production

Освойте инженерную зрелость Spring-разработки: от надёжного тестирования до контейнеризации. Вы научитесь тестировать каждый слой — от unit и MockMvc до Testcontainers, разбираться во внутренней механике Hibernate, устранять N+1 и оптимизировать persistence layer, а также упаковывать backend в Docker с PostgreSQL, Redis и RabbitMQ. Доведите свой Spring-проект до production-уровня — с тестами, производительностью и инфраструктурой.
4.9
500+ отзывов
30k выпускников построили карьеру в ИТ
Подробная программа обучения
  • Зачем тестировать Spring Boot приложение
  • JUnit 6 как рабочая база курса
  • AssertJ, Hamcrest, JSONassert и JsonPath как язык проверок
  • Mockito без магии и без ложного чувства надежности
  • Unit-тесты бизнес-логики без Spring-контекста
  • Spring Boot 4 testing landscape и карта test annotations
  • Test profiles, properties и управляемая тестовая конфигурация
  • JSON tests как отдельный слой качества API
  • @WebMvcTest как базовый инструмент узкого controller testing
  • MockMvc и HTTP-механика без поднятия сервера
  • MockMvcTester как более ergonomic MVC path
  • Validation и error handling в controller tests
  • Более прикладные MVC-сценарии: pagination, files и boundary cases
  • @DataJpaTest и честное тестирование repository-layer
  • TestEntityManager, flush, clear и реальные последствия JPA-мэппинга
  • Queries, pagination и мост к реальной базе данных
  • Связи сущностей, lazy loading и конкурентные сценарии
  • Flyway, @Sql и repeatable test data
  • @SpringBootTest и карта полного контекста
  • Full-context tests с MockMvc
  • Running server integration tests через RestTestClient
  • Минимальный профессиональный regression suite
  • Security testing для защищенного Spring Boot API
  • Тестирование внешних интеграций и простого async-поведения
  • Testcontainers и real PostgreSQL path
  • REST Docs, platform settings и финальная стратегия test suite
  • Зачем Hibernate, что будем строить и как читать SQL-вывод
  • Жизненный цикл сущности и persistence context как основа всего остального
  • Dirty checking и как Hibernate автоматически замечает изменения в объектах
  • Flush и когда именно Hibernate решает идти в базу данных
  • Detached-объекты, что с ними происходит и как правильно использовать merge()
  • Lazy loading, proxy-объекты и почему границы транзакции важнее чем кажется
  • N+1 на живых примерах как первая настоящая ORM-проблема
  • JOIN FETCH, EntityGraph и @BatchSize как инструменты осознанной загрузки данных
  • Entity как write-model и projection как read-model в зрелом persistence layer
  • HQL, Criteria API и native SQL — три инструмента и понимание когда что выбрать
  • Owning side, cascades и lifecycle design как фундамент корректного mapping
  • Link entity вместо наивного ManyToMany — честная модель с контролем над lifecycle
  • equals(), hashCode() и proxy в коллекциях как источник тихих дорогих багов
  • Embeddables, value objects и converters для выразительной и удобной модели
  • Стратегии идентификаторов, natural id и их реальная цена в runtime
  • Наследование, @DynamicUpdate, ограничения схемы и зрелый mapping design
  • Hibernate внутри Spring-транзакций и transaction boundary на уровне сервиса
  • Optimistic locking как базовая защита от lost update в бизнес-сценариях
  • Pessimistic locking как точечный инструмент для критических конкурентных секций
  • Soft delete, filters и управление видимостью данных в реальном приложении
  • Hibernate Envers как полноценная история изменений без ручных audit fields
  • Lifecycle callbacks и listeners — удобный механизм со скрытыми side effects
  • JDBC batching как практический способ ускорить массовые записи
  • Bulk operations и StatelessSession как выход за пределы entity-модели
  • Read-only mode, first-level cache и кэширование как часть performance-мышления
  • SQL diagnostics и performance audit как системный подход к оптимизации
  • Hibernate под капотом Spring Data JPA и границы удобства абстракции
  • ORM integration testing как способ ловить реальные баги слоя данных
  • Hibernate anti-patterns и рефакторинг как подготовка к честному code review
  • Финальный persistence audit, decision framework и roadmap роста после курса
  • Контейнерное мышление для Java/Spring-разработчика и карта всего курса
  • Ежедневный Docker CLI без DevOps-overload
  • Первый контейнер для Spring Boot приложения
  • Dockerfile глазами Java-разработчика
  • Слои, кэш и быстрая пересборка образа
  • Multi-stage build как стандартный путь для Java
  • Базовые образы, воспроизводимость и платформы
  • Layered Spring Boot images на Boot 4.0.3
  • Buildpacks и bootBuildImage
  • Development target и debug-oriented image
  • Externalized configuration внутри контейнеризированного Boot-приложения
  • Profiles и внешние конфигурационные файлы
  • Volumes, bind mounts и файловые сценарии
  • Логи, health и корректное завершение приложения
  • Compose как нормальный способ жить с несколькими контейнерами
  • Первый взрослый стенд — app + PostgreSQL
  • Startup order и настоящая readiness-модель
  • Flyway и жизненный цикл локальной среды
  • Добавление Redis в тот же Compose-стек
  • Добавление RabbitMQ без превращения курса в messaging-track
  • Developer workflow вокруг Compose
  • Troubleshooting workshop
  • JVM под memory и CPU limits
  • Image hygiene, non-root и финальный reusable template
400+
Лекций
700+
Задач
80
Тестов
А также:
  • Мгновенная проверка
  • AI-валидатор кода
  • Плагин для IDE
  • WebIDE
  • Геймификация