Этот вопрос проверяет знание ключевых модулей Spring и понимание, какой модуль за что отвечает в типичном backend-приложении.
В backend чаще всего используют Spring Core для DI и контейнера бинов, Spring Web для HTTP, Spring Data для работы с БД и Spring Security для безопасности. Также часто встречаются Spring Transaction для транзакций и Spring Boot для удобной сборки приложения. Набор модулей зависит от задач: синхронный web, реактивный стек, интеграции и т.д. Важно понимать роль каждого модуля, а не только названия.
Spring Framework — это набор модулей, которые можно комбинировать под нужды приложения. На backend чаще всего встречается стандартный «пакет» модулей.
Модуль Spring — это часть экосистемы Spring, которая решает отдельную задачу: управление зависимостями, web-слой, доступ к данным, безопасность, транзакции и т.д.
Эти модули дают основу: контейнер, бины и внедрение зависимостей.
Что решают
создание и жизненный цикл объектов (бинов)
@Component, @Service, @Configuration, @Bean
внедрение зависимостей через конструктор
Почему важно
без этого не будет «пружины» как фреймворка
Модуль для HTTP API и обработки запросов.
Что включает
@RestController, @RequestMapping
обработка JSON через Jackson
валидация входных данных (в связке с @Valid)
Где применяют
классические REST API
backend для web и мобильных клиентов
Отвечает за декларативные транзакции.
Что даёт
@Transactional
управление границами транзакций без ручного commit/rollback
Где особенно нужно
любая запись в БД, где важна целостность данных
Слой абстракций над доступом к данным.
Что даёт
репозитории (CrudRepository, JpaRepository)
генерация запросов по имени метода
интеграция с JPA/Hibernate
Плюс
меньше шаблонного кода вокруг DAO
Безопасность приложения: аутентификация и авторизация.
Примеры задач
защита эндпоинтов по ролям
интеграция JWT / OAuth2
фильтры безопасности в цепочке запросов
Где встречается
почти в любом публичном API
Это не модуль Spring Framework в узком смысле, но в backend он почти всегда рядом.
Что даёт
автоконфигурации
starter-зависимости
быстрый старт приложения
Реактивный web-стек на базе Reactor и Netty.
Когда выбирают
много I/O и высокая конкурентность
стриминг данных
Когда не обязателен
обычные CRUD-сервисы на MVC
Готовые эндпоинты для мониторинга.
Что даёт
/actuator/health, /actuator/metrics
интеграция с мониторингом
На большинстве Java backend-проектов базовый набор — Spring Core, Web (MVC), Data, Security и Transaction, а Spring Boot помогает быстро и стабильно всё собрать. Важно понимать назначение каждого модуля, чтобы осознанно выбирать инструменты под задачу.