Pytania na Rozmowę Spring Boot

Autor: Aaron Cao · Zaktualizowano

Pytania na Rozmowę Spring Boot
Spodziewaj się pytań o autoconfiguration i startery, dependency injection i bean scope, profile i konfigurację zewnętrzną, Spring Data JPA, kontrolery REST i obsługę wyjątków, testing slice oraz Actuator. Rozmowy na stanowiska senior dodają granice transakcji, caching i zachowanie usługi po restarcie.

Spodziewaj się pytań o autoconfiguration i startery, dependency injection i bean scope, profile i konfigurację zewnętrzną, Spring Data JPA, kontrolery REST i obsługę wyjątków, testing slice oraz Actuator. Rozmowy na stanowiska senior dodają granice transakcji, caching i zachowanie usługi po restarcie.

O co pytają rekruterzy w sprawie autoconfiguration i starterów?

Prawdopodobnie używasz Spring Boot codziennie, nie czytając jego logu startowego, a rekruterzy o tym wiedzą, dlatego od tego zaczynają. Ta sekcja obejmuje pytania sprawdzające, czy rozumiesz framework, czy tylko jego domyślne ustawienia.

  • Co dokładnie łączy @SpringBootApplication i co by się zepsuło, gdybyś usunął jedną część?
  • Jak autoconfiguration decyduje, co skonfigurować, i jaką rolę odgrywają conditional annotation?
  • Czym jest starter i co jest w nim poza dependency?
  • Jak nadpisać lub wyłączyć konkretną autoconfiguration?
  • Skąd bierze się embedded server i jak byś go zamienił?

Dobra odpowiedź łączy mechanizm z czymś, co faktycznie zrobiłeś: bean, który musiałeś wykluczyć, starter, który zamieniłeś, albo błąd startowy, który wyśledziłeś przez condition evaluation report.

Jakie podstawowe pytania o kontener i dane się pojawiają?

  • Dependency injection. Constructor kontra field injection, dlaczego constructor injection jest preferowany i jak rozwiązać dwóch kandydatów bean tego samego typu.
  • Cykl życia i scope bean. Dlaczego singleton jest domyślny, kiedy request lub prototype scope są właściwe i co sprawia, że dzielenie się bean singleton jest niebezpieczne.
  • Konfiguracja. Kolejność priorytetów property, profile na środowisko oraz @ConfigurationProperties kontra rozproszony value injection.
  • Spring Data JPA. Derived query methods, problem N plus 1, lazy kontra eager fetching i kiedy zejść do native query.
  • Transakcje. Co faktycznie przechwytuje proxy @Transactional, dlaczego self-invocation po cichu omija transakcję i jak działają reguły rollback z checked exception.

Pytanie o proxy transakcji to najczęstsze miejsce, w którym pewna siebie odpowiedź się rozsypuje, więc bądź gotów wyjaśnić granicę proxy, a nie tylko nazwać annotation.

Jak rozmawiać o projektowaniu REST, testing i operacjach?

Poza kontenerem rekruterzy chcą zobaczyć elementy, które pojawiają się w produkcji. Na warstwie web: wybór status code, walidacja i scentralizowana obsługa błędów za pomocą @ControllerAdvice zamiast try-catch w każdym kontrolerze. W testing: różnica między pełnym @SpringBootTest a slice, takim jak test warstwy web, i dlaczego uruchamianie całego kontekstu dla jednego testu kontrolera to wolny nawyk. W operacjach: co udostępnia Actuator, które endpointy nie mogą być publiczne i jak health check zasilają deployment.

Wyobraź sobie backend engineera na rozmowie o stanowisko mid-level w firmie logistycznej. Zostaje zapytany, dlaczego zaplanowane zadanie czasami zapisywało niepełne dane. Zamiast zgadywać, przechodzi przez granicę transakcji, zauważa, że zadanie wywoływało metodę transactional na sobie samym, i wyjaśnia zachowanie proxy, które to pominęło. Rekruter przeszedł prosto do rozmowy o ofercie, ponieważ odpowiedź pokazywała nawyk debugowania, a nie wyuczoną definicję.

Zestawy pytań dla innych języków i frameworków są zebrane pod question banks.

Jak ćwiczyć i gdzie pasuje asystent na żywo?

Przeczytaj raz log startowy własnej usługi i bądź w stanie go opowiedzieć. Potem ćwicz na głos, bo różnica między znajomością koncepcji a wyjaśnieniem jej w czterdzieści sekund decyduje o tych rozmowach. Rekruter AI na stronie /mock-interview może zadać pytania dodatkowe, których sam byś sobie nie zadał.

Podczas mówionej rozmowy wideo SubcueAI transkrybuje pytanie rekrutera i pokazuje po twojej stronie sugerowaną strukturę odpowiedzi, w nakładce desktopowej na macOS i Windows lub w panelu bocznym rozszerzenia przeglądarki Chromium. Żaden meeting bot nie dołącza do rozmowy i nic nie jest wstrzykiwane na stronę spotkania. Uczciwym ograniczeniem jest runda kodowania: jeśli przechodzi na platformę z monitoringiem ekranu lub proctoringiem, pomoc na żywo jest poza zasięgiem, a jeśli udostępnisz ekran, wszystko na nim jest widoczne.

FAQ

Jaka jest różnica między Spring a Spring Boot?

Spring to podstawowy framework. Spring Boot dodaje opinionated autoconfiguration, starter dependency i embedded server, dzięki czemu usługa działa bez zewnętrznych plików konfiguracyjnych.

Dlaczego constructor injection jest preferowany?

Sprawia, że dependency są jawne i wymagane, pozwala trzymać field jako final i umożliwia zbudowanie obiektu w teście bez kontenera. Field injection ukrywa brakujące dependency aż do runtime.

Czym jest problem N plus 1?

Jedno query ładuje listę, a potem każdy element wywołuje kolejne query dla swojej relacji. Napraw to przez fetch join, entity graph lub batch fetching zamiast eager loading wszystkiego.

Które endpointy Actuator ryzykowne jest udostępniać?

Wszystko, co ujawnia konfigurację, environment lub heap state. Udostępniaj health i metrics przez swoją ścieżkę monitoringu, a resztę trzymaj za autentykacją albo całkowicie wyłącz.

Jak głęboko sięgają pytania o Spring Boot na stanowiskach senior?

Rozmowy senior przechodzą od annotation do zachowania: granice proxy, transaction propagation, poprawność caching, wydajność startu i jak usługa zachowuje się podczas rolling restart.

Powiązane pytania

← Więcej o Pytania rekrutacyjne według roli i tematu