Перейти к основному содержимому
DevScallix
← Enterprise Spring BootПланируется

Enterprise Spring Boot: Модули

Программа нацелена на грамотное использование Spring Boot от небольшого сервиса до большой долгоживущей кодовой базы. Конфигурация и модульность, транзакции и согласованность, безопасность на OAuth2/OIDC, версионирование API и наблюдаемость изучаются как единое целое. В конце участник может оценить существующее Spring-приложение и подготовить план улучшений.

  1. 01

    Конфигурация и модульность

    Как сохранить управляемыми контейнер Spring и конфигурацию по мере роста кодовой базы.

    • Жизненный цикл bean и механизм auto-configuration
    • @ConfigurationProperties и стратегия профилей
    • Spring Modulith или границы модулей на уровне пакетов
    • Направление зависимостей и устранение циклических зависимостей
    • Написание собственного starter

    Лабораторная: Разделить монолит на модули с чёткими границами и добавить тест, автоматически выявляющий нарушения границ.

  2. 02

    Транзакции и согласованность

    Что на самом деле происходит за аннотацией транзакции и где она вводит в заблуждение.

    • @Transactional на прокси и ловушка self-invocation
    • Правила propagation и rollback
    • Isolation, optimistic и pessimistic locking
    • Риск внешних вызовов внутри транзакции
    • События после коммита (@TransactionalEventListener)

    Лабораторная: Воспроизвести сценарий, где частично успешная операция оставляет неконсистентное состояние, и исправить границу транзакции.

  3. 03

    Spring Security, OAuth2 и OIDC

    Правильно строим проверку токенов и модель авторизации на стороне resource server.

    • Security filter chain и порядок фильтров
    • OAuth2 resource server и проверка JWT
    • Потоки OIDC и типы токенов
    • Method security (@PreAuthorize) и модель полномочий
    • CORS, CSRF и политика сессий
    • Тестирование безопасности

    Лабораторная: Построить resource server с защитой на JWT и проверить тестами method security на ролях и scope.

  4. 04

    Дизайн и версионирование API

    Отрабатываем, как развивать API, не ломая его потребителей.

    • Моделирование ресурсов и семантика HTTP
    • Правила обратно совместимых изменений
    • Сравнение подходов к версионированию
    • Модель ошибок на RFC 9457 problem details
    • Проверка по OWASP API Security Top 10
    • OpenAPI и contract-тесты

    Лабораторная: Изменить существующий endpoint, не ломая потребителей, и доказать совместимость contract-тестом.

  5. 05

    Наблюдаемость

    Делаем поведение системы видимым, связывая метрики, трейсы и логи.

    • Метрики Micrometer и cardinality
    • Трейсы OpenTelemetry и propagation контекста
    • Structured logs и корреляция
    • Health probe и защита Actuator
    • Алертинг на основе SLI/SLO

    Лабораторная: Добавить в сервис трейсинг и метрики и собрать dashboard, прослеживающий один запрос от строки лога до трейса.

  6. 06

    Устойчивость и производительность

    Выясняем, как система ведёт себя при деградации зависимости и где находится узкое место.

    • Бюджеты timeout, retry и backoff
    • Circuit breaker и bulkhead (Resilience4j)
    • Размер connection pool и thread pool
    • Кэширование: что, где и на сколько
    • Настройка старта и памяти

    Лабораторная: Смоделировать медленную зависимость и измерить нагрузочным тестом поведение сервиса с timeout и circuit breaker.

  7. 07

    Стратегия обновления и миграции

    Планируем смену major-версии и постепенную модернизацию старого кода с низким риском.

    • Чтение release notes и migration guide
    • Инвентаризация deprecated API
    • Наращивание тестового покрытия перед миграцией
    • Поэтапный переход и план отката
    • Совместимость зависимостей и переход на Jakarta

    Лабораторная: Написать план major-обновления Spring Boot и реестр рисков для учебного приложения и выполнить первый этап.

Вернуться на страницу программыЗадать вопрос о плане