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

Курс Spring in Practice

Пройдите путь от первого REST-контроллера до защищённого backend с полноценным persistence layer. Вы научитесь проектировать production-like REST API, работать с PostgreSQL через Spring Data JPA и защищать приложение через Spring Security — от аутентификации и ролей до JWT. Перейдите от теории Spring к прикладной backend-разработке.
4.9
500+ отзывов
30k выпускников построили карьеру в ИТ
Подробная программа обучения
  • Позиционирование курса, его границы в линейке и старт сквозного проекта Task Tracker API
  • HTTP глазами backend-разработчика, а не только как «методы и статусы из теории»
  • REST как практический стиль проектирования API, а не как набор догматических правил
  • URI, границы ресурсов и финальная карта endpoints проекта
  • Spring MVC request handling без магии и без раннего ухода в детали framework internals
  • Источники входных данных в контроллере: path, query, headers и criteria DTO
  • Request body, response body и корректные HTTP-ответы на create/update/delete операции
  • HttpMessageConverter и реальная механика body conversion в Spring MVC
  • Архитектура проекта внутри REST-курса: контроллеры, сервисы, in-memory репозитории и storage abstraction
  • DTO как защита внешнего контракта и как способ не утечь внутренней моделью наружу
  • Jackson 3 и JSON basics для выбранной Boot-линии курса
  • Jackson-аннотации, которые действительно нужны в REST-курсе, и где надо остановиться
  • JSON beyond simple DTO: generics, tree model и частично динамический input без ухода в хаос
  • Стабильные response shape, list envelopes и безопасная эволюция JSON-контракта
  • Базовая валидация входных данных через Bean Validation и Spring Boot validation stack
  • Валидация вложенных структур, коллекций и параметров запроса
  • Кастомная валидация, cross-field rules и граница между input validation и business validation
  • Как возвращать ошибки валидации так, чтобы они были полезны клиенту и не ломали единый error contract
  • Категории ошибок в API и современный базовый путь через ProblemDetail
  • @ControllerAdvice, @ExceptionHandler и перевод исключений в единые HTTP-ответы
  • Проектирование хорошего error response: коды, детали, field errors и конфликтные бизнес-сценарии
  • Collection endpoints, pagination и sorting без опоры на Spring Data abstractions
  • Filtering и search без превращения API в хаотичный набор query-параметров
  • Создание, обновление и удаление ресурсов: POST, PUT, PATCH, DELETE без лишней путаницы
  • Не-CRUD сценарии, переходы состояний и поддерживающие подресурсы без RPC-хаоса
  • File upload в Spring MVC и multipart/form-data как часть нормального прикладного API
  • Download endpoints, локальное файловое хранилище и разделение metadata/content
  • Externalized configuration в контексте REST-курса и прикладных сценариев проекта
  • Эволюция API и OpenAPI-документация как продолжение contract-first подхода
  • @WebMvcTest, MockMvc и финальная сборка навыка production-like REST API
  • Зачем приложению нужен persistence layer, как соотносятся JDBC, JPA, Hibernate и Spring Data JPA
  • SQL refresher — таблицы, ключи, ограничения и joins как фон для entity mapping
  • SQL refresher для write-сценариев — DML, индексы и транзакционная логика до @Transactional
  • Поднимаем PostgreSQL, настраиваем DataSource, HikariCP и собираем каркас проекта shop-data-jpa
  • Первая entity, первичный ключ и базовый field mapping
  • Entity design — states, @Embeddable, value objects и границы модели
  • Repository abstraction — как интерфейс становится компонентом и где граница ответственности репозитория
  • ManyToOne, OneToMany, owning side и ментальная модель связей в JPA
  • OneToOne, controlled ManyToMany и первые fetch-ловушки, которые лучше увидеть рано
  • Derived queries, сортировка, Page и Slice для типичных REST- и service-сценариев
  • JPQL и @Query как следующий шаг, когда имена методов перестают быть удобными
  • Projections как нормальный read-side инструмент, а не редкая экзотика
  • Native queries — только там, где JPQL уже неудобен, без превращения курса в SQL-first историю
  • @Modifying, bulk update/delete и разница между «изменить сущности» и «изменить данные быстро»
  • Pragmatic Specification для динамической фильтрации и controlled preview более гибкого querying
  • Современный repository API, legacy-паттерны старых статей и финализация querying-блока
  • Почему @Transactional — это граница бизнес-операции, а не декоративная аннотация
  • Проектируем placeOrder() как полноценную unit of work, а не набор вызовов репозиториев
  • Необходимая глубина по propagation, isolation и transactional defaults для Junior-уровня
  • Persistence context, dirty checking, flush и detached-объекты — то, что воспринимается как «магия Hibernate»
  • Lazy loading, LazyInitializationException и N+1 как первая настоящая боль ORM
  • join fetch, @EntityGraph и projections для осознанного управления чтением данных
  • Flyway и жизнь схемы БД — от демо-схемы к воспроизводимому data-layer
  • Ограничения БД, exception translation и граница между кодовой validation и защитой данных
  • Конкурентный доступ, lost update и optimistic locking как база для многопользовательского приложения
  • Auditing, общие поля и поддерживаемый data-layer без лишней архитектурной тяжести
  • @DataJpaTest, repository tests и проверка маппингов, запросов и pagination на изолированном data-layer
  • Transactional service tests, H2 traps, optional Testcontainers preview и финальная сборка data-layer
  • Зачем Spring Security появляется в Spring Boot приложении и какие проблемы он решает
  • Что меняется в приложении сразу после подключения spring-boot-starter-security
  • Request lifecycle и anatomy filter chain в servlet-приложении
  • Authentication internals без магии и лишнего low-level перегруза
  • Первый осмысленный SecurityFilterChain и первые собственные access rules
  • Пароли, PasswordEncoder и безопасная модель хранения credentials
  • In-memory users, roles и authorities как первая рабочая security-модель
  • Form login как лучший учебный мост к пониманию Spring Security
  • Session-based security как полноценная модель, а не "устаревший способ до JWT"
  • HTTP Basic и API-клиенты как простой и честный сравнительный baseline
  • CSRF fundamentals на реальных state-changing запросах
  • CORS, cookies и frontend-интеграция без мифов и blind disable
  • Multipart и file upload security на примере аватара пользователя
  • Переход от in-memory authentication к DB-backed users
  • CustomUserDetailsService и DaoAuthenticationProvider поверх БД
  • Регистрация пользователя и жизненный цикл аккаунта
  • REST-friendly security errors и различие между 401 и 403
  • Request-level authorization для REST API и вспомогательных endpoint'ов
  • Method security как отдельный уровень защиты, а не хвостик к URL-rules
  • Ownership-based access, current user и правила свой / чужой
  • От stateful security к stateless API без идеологической войны
  • JWT basics без маркетингового тумана и лишнего OAuth2-контекста
  • Выдача JWT и проектирование login endpoint для stateless API
  • Custom JWT filter как самый прозрачный путь понять stateless authentication
  • Built-in Bearer/JWT support как альтернативная, более framework-native реализация
  • MockMvc и базовый набор security-тестов для Spring MVC приложения
  • Тестирование CSRF, form login, JWT и негативных security-сценариев
  • Hardening, troubleshooting и финальный security audit проекта
430+
Лекций
800+
Задач
86
Тестов
А также:
  • Мгновенная проверка
  • AI-валидатор кода
  • Плагин для IDE
  • WebIDE
  • Геймификация