Питання на Співбесіді Spring Boot
Автор: Aaron Cao · Оновлено

Очікуйте питань про autoconfiguration і startery, dependency injection і bean scope, profile та зовнішню конфігурацію, Spring Data JPA, REST-контролери й обробку exception, testing slice та Actuator. Співбесіди на senior-рівень додають межі транзакцій, caching і поведінку сервісу після перезапуску.
Про що інтерв'юери питають щодо autoconfiguration і starterів?
Ви, ймовірно, використовуєте Spring Boot щодня, не читаючи його стартовий log, і інтерв'юери це знають, тому й починають звідси. Цей розділ охоплює питання, що перевіряють, чи розумієте ви framework, чи лише його налаштування за замовчуванням.
- Що саме поєднує
@SpringBootApplication, і що зламається, якщо прибрати одну частину? - Як autoconfiguration вирішує, що конфігурувати, і яку роль відіграють conditional annotation?
- Що таке starter і що в ньому є, крім dependency?
- Як перевизначити чи вимкнути конкретну autoconfiguration?
- Звідки береться embedded server і як би ви його замінили?
Хороша відповідь пов'язує механізм із чимось, що ви справді робили: bean, який довелося exclude, starter, який ви замінили, або помилку запуску, яку ви відстежили через condition evaluation report.
Які основні питання про container і дані трапляються?
- Dependency injection. Constructor проти field injection, чому constructor injection кращий, і як розв'язати ситуацію з двома кандидатами bean одного типу.
- Життєвий цикл і scope bean. Чому singleton за замовчуванням, коли доречний request чи prototype scope, і що робить спільне використання singleton bean небезпечним.
- Конфігурація. Пріоритет property, profile для кожного середовища та
@ConfigurationPropertiesпроти розсіяного value injection. - Spring Data JPA. Derived query methods, проблема N плюс 1, lazy проти eager fetching і коли переходити на native query.
- Транзакції. Що насправді перехоплює proxy
@Transactional, чому self-invocation тихо пропускає транзакцію і як правила rollback працюють із checked exception.
Питання про proxy транзакцій — найпоширеніше місце, де впевнена відповідь розсипається, тож будьте готові пояснити межу proxy, а не просто назвати annotation.
Як говорити про REST-дизайн, testing і операції?
Окрім container, інтерв'юери хочуть побачити частини, що проявляються в продакшені. На web-рівні: вибір status code, валідація і централізована обробка помилок через @ControllerAdvice замість try-catch у кожному контролері. У testing: різниця між повним @SpringBootTest і slice на кшталт web-layer test, і чому запуск усього context для одного тесту контролера — повільна звичка. В операціях: що розкриває Actuator, які endpoint не мають бути публічними, і як health check живлять deployment.
Уявіть backend-інженерку, яка проходить співбесіду на mid-level посаду в логістичній компанії. Її запитують, чому запланована job іноді записувала неповні дані. Замість здогадок вона проходить через межу транзакції, зазначає, що job викликала transactional метод сама на собі, і пояснює поведінку proxy, яка це пропустила. Інтерв'юер одразу перейшов до розмови про offer, бо відповідь показувала звичку debugging, а не завчену definition.
Набори питань для інших мов і framework зібрані в розділі question banks.
Як тренуватися і де тут місце живого асистента?
Прочитайте стартовий log власного сервісу один раз і будьте здатні його переказати. Потім тренуйтеся вголос, бо саме розрив між знанням концепції та поясненням її за сорок секунд вирішує результат таких співбесід. AI-інтерв'юер на сторінці /mock-interview може ставити уточнювальні питання, які ви б собі не поставили.
Під час усної відеоспівбесіди SubcueAI транскрибує питання інтерв'юера і показує на вашому боці запропоновану структуру відповіді — в desktop-оверлеї на macOS і Windows або на бічній панелі розширення браузера Chromium. Жоден meeting bot не приєднується до дзвінка, і нічого не впроваджується на сторінку зустрічі. Чесне обмеження — раунд кодування: якщо він переходить на платформу з моніторингом екрана чи proctoring, жива допомога поза межами, а якщо ви ділитеся екраном, усе на ньому видно.