Java Backend Developer Interviewfragen: Spring Boot, JPA, APIs

Milad Bonakdar
Autor
Bereiten Sie sich mit praxisnahen Fragen zu Spring Boot, REST APIs, Microservices, JPA/Hibernate, Security, Tests und Architekturentscheidungen vor.
Einführung
Java-Backend-Interviews prüfen meist, ob Sie zuverlässige APIs bauen und betreiben können, nicht ob Sie Framework-Begriffe auswendig können. Rechnen Sie mit Fragen zu Spring Boot, REST-Design, Persistenz, Transaktionen, Testing, Security, Observability und Architekturentscheidungen in Microservice-Systemen.
Nutzen Sie diesen Leitfaden, um Antworten vorzubereiten, die Konzept und Praxis verbinden: was eine Technik leistet, wann Sie sie einsetzen würden, was schiefgehen kann und wie Sie testen oder debuggen würden. 2026 sollten Sie außerdem Java-17+-Baselines, Diskussionen zu Java 21/25, Spring-Boot-3/4-Projekte und moderne OAuth2/JWT-API-Security einordnen können.
So nutzen Sie diesen Leitfaden
- Beginnen Sie mit den einfachen Spring-Boot- und Java-Grundlagen und üben Sie danach die mittleren und schweren Fragen laut.
- Ergänzen Sie jede Antwort um ein eigenes Projektbeispiel aus Lebenslauf oder Portfolio.
- Nennen Sie bei Tradeoffs die Standardlösung, die Sie wählen würden, und das Signal, bei dem Sie wechseln würden.
- Wenn Ihr Lebenslauf Microservices, JPA, Kafka, Docker oder Cloud-Deployment nennt, bereiten Sie eine konkrete Debugging- oder Fehlergeschichte vor.
Spring Boot Kernkonzepte
1. Was ist Spring Boot und wie unterscheidet es sich vom traditionellen Spring Framework?
Antwort:
- Spring Framework: Ein umfassendes Framework für die Java-Enterprise-Entwicklung. Es erfordert eine erhebliche manuelle Konfiguration (XML- oder Java-basiert), um eingerichtet zu werden.
- Spring Boot: Eine Erweiterung des Spring Framework, die die Einrichtung und Entwicklung neuer Spring-Anwendungen vereinfacht.
- Auto-Konfiguration: Konfiguriert automatisch Beans basierend auf Classpath-Abhängigkeiten.
- Eingebettete Server: Enthält Tomcat, Jetty oder Undertow, sodass Sie keine WAR-Dateien bereitstellen müssen.
- Starters: Ausgewählte Abhängigkeiten zur Vereinfachung der Build-Konfiguration.
- Meinungsstarke Standardwerte: Ansatz "Konvention vor Konfiguration".
Seltenheit: Häufig Schwierigkeit: Einfach
2. Erklären Sie die Annotation @SpringBootApplication.
Antwort: Es ist eine praktische Annotation, die drei andere Annotationen kombiniert:
@Configuration: Markiert die Klasse als Quelle für Bean-Definitionen.@EnableAutoConfiguration: Weist Spring Boot an, mit dem Hinzufügen von Beans basierend auf Classpath-Einstellungen, anderen Beans und verschiedenen Eigenschaftseinstellungen zu beginnen.@ComponentScan: Weist Spring an, nach anderen Komponenten, Konfigurationen und Diensten im aktuellen Paket und in den Unterpaketen zu suchen.
Seltenheit: Häufig Schwierigkeit: Einfach
3. Was ist Dependency Injection (DI) und Inversion of Control (IoC)?
Antwort:
- IoC: Ein Prinzip, bei dem die Kontrolle über die Objekterstellung und -verwaltung vom Programmierer an einen Container (Spring IoC Container) übertragen wird.
- DI: Ein Entwurfsmuster, das zur Implementierung von IoC verwendet wird. Anstatt dass ein Objekt seine Abhängigkeiten selbst erstellt, werden diese in es "injiziert" (über Konstruktor, Setter oder Feld).
- Vorteil: Entkopplung, einfacheres Testen (Mocking von Abhängigkeiten) und bessere Wartbarkeit.
Seltenheit: Sehr Häufig Schwierigkeit: Mittel
4. Was sind Spring Boot Starters? Nennen Sie Beispiele.
Antwort: Starters sind eine Reihe praktischer Dependency-Deskriptoren, die Sie in Ihre Anwendung einbinden können. Sie enthalten alle Abhängigkeiten, die Sie benötigen, um ein Projekt schnell mit einem konsistenten, unterstützten Satz verwalteter transitiver Abhängigkeiten zum Laufen zu bringen.
- Beispiele:
spring-boot-starter-web: Für die Entwicklung von Webanwendungen (enthält Tomcat und Spring MVC).spring-boot-starter-data-jpa: Für die Verwendung von Spring Data JPA mit Hibernate.spring-boot-starter-test: Für Tests (enthält JUnit, Mockito).spring-boot-starter-security: Für Spring Security.
Seltenheit: Häufig Schwierigkeit: Einfach
5. Was ist Spring Actuator?
Antwort: Spring Boot Actuator bietet produktionsreife Funktionen, mit denen Sie Ihre Anwendung überwachen und verwalten können.
- Endpunkte: Stellt Endpunkte wie
/health(App-Status),/metrics(Speicher, CPU-Auslastung),/info(App-Info),/env(Umgebungseigenschaften) bereit. - Verwendung: Entscheidend für Operationsteams, um den Zustand von Microservices in der Produktion zu überprüfen.
Seltenheit: Häufig Schwierigkeit: Mittel
Microservices & Architektur
6. Was sind die Vorteile von Microservices gegenüber der monolithischen Architektur?
Antwort:
- Skalierbarkeit: Einzelne Dienste können je nach Bedarf unabhängig voneinander skaliert werden.
- Technologie-Agnostisch: Verschiedene Dienste können verschiedene Technologien (Java, Go, Python) verwenden, die für die jeweilige Aufgabe am besten geeignet sind.
- Fehlerisolation: Ein Fehler in einem Dienst führt nicht unbedingt zum Ausfall des gesamten Systems.
- Unabhängige Bereitstellung: Teams können Dienste unabhängig voneinander bereitstellen, was schnellere Release-Zyklen (CI/CD) ermöglicht.
Seltenheit: Häufig Schwierigkeit: Mittel
7. Was ist ein API Gateway? Warum sollte man es verwenden?
Antwort: Ein API Gateway ist ein Server, der als einziger Einstiegspunkt in das System fungiert. Er nimmt alle API-Aufrufe von Clients entgegen und leitet sie dann an den entsprechenden Microservice weiter.
- Funktionen: Anforderungsrouting, Zusammensetzung und Protokollübersetzung.
- Übergreifende Belange: Authentifizierung, SSL-Terminierung, Ratenbegrenzung, Caching, Protokollierung.
- Beispiele: Spring Cloud Gateway, Netflix Zuul, Kong.
Seltenheit: Sehr Häufig Schwierigkeit: Mittel
8. Erklären Sie Service Discovery (Eureka).
Antwort: In einer Microservices-Umgebung haben Service-Instanzen dynamische IP-Adressen. Service Discovery ist ein Mechanismus, mit dem Dienste einander finden können.
- Eureka Server: Fungiert als Service-Registry.
- Eureka Client: Microservices registrieren sich beim Start beim Eureka Server und senden Heartbeats.
- Discovery: Wenn Service A Service B aufrufen muss, fragt er Eureka nach der Adresse von Service B.
Seltenheit: Häufig Schwierigkeit: Mittel
9. Was ist das Circuit Breaker Pattern?
Antwort: Das Circuit Breaker Pattern verhindert, dass eine Anwendung wiederholt versucht, eine Operation auszuführen, die wahrscheinlich fehlschlagen wird (z. B. der Aufruf eines ausgefallenen Dienstes).
- Zustände:
- Geschlossen: Anfragen fließen normal.
- Offen: Anfragen werden sofort blockiert (Fail Fast), damit sich der fehlerhafte Dienst erholen kann.
- Halb-Offen: Eine begrenzte Anzahl von Anfragen wird durchgelassen, um zu testen, ob sich der Dienst erholt hat.
- Tools: Resilience4j (empfohlen), Hystrix (veraltet).
Seltenheit: Sehr Häufig Schwierigkeit: Schwer
Datenbank & JPA
10. Was ist JPA und Hibernate?
Antwort:
- JPA (Java Persistence API): Eine Spezifikation für den Zugriff, die Persistierung und die Verwaltung von Daten zwischen Java-Objekten und einer relationalen Datenbank. Es ist nur eine Schnittstelle.
- Hibernate: Die beliebteste Implementierung der JPA-Spezifikation. Es ist ein ORM-Tool (Object-Relational Mapping).
Seltenheit: Häufig Schwierigkeit: Einfach
11. Erklären Sie das N+1 Select Problem in Hibernate.
Antwort: Das N+1-Problem tritt auf, wenn das Datenzugriffs-Framework N zusätzliche SQL-Anweisungen ausführt, um dieselben Daten abzurufen, die beim Ausführen der primären SQL-Abfrage hätten abgerufen werden können.
- Szenario: Abrufen einer Liste von
Authors (1 Abfrage). Iterieren und Zugreifen aufauthor.getBooks()(N Abfragen, eine für jeden Autor). - Lösung: Verwenden Sie Join Fetch in JPQL (
SELECT a FROM Author a JOIN FETCH a.books) oder Entity Graphs, um zugehörige Entitäten in einer einzigen Abfrage eifrig zu laden.
Seltenheit: Sehr Häufig Schwierigkeit: Mittel
12. Was ist der Unterschied zwischen @Entity, @Table und @Column?
Antwort:
@Entity: Gibt an, dass die Klasse eine Entität ist und einer Datenbanktabelle zugeordnet ist.@Table: Optional. Gibt den Namen der Datenbanktabelle an, die für die Zuordnung verwendet werden soll. Wenn weggelassen, wird der Klassenname verwendet.@Column: Optional. Gibt die Details der Spalte an, der ein Feld oder eine Eigenschaft zugeordnet wird. Wenn weggelassen, wird der Feldname verwendet.
Seltenheit: Häufig Schwierigkeit: Einfach
Sicherheit & Testen
13. Wie sichern Sie eine Spring Boot-Anwendung?
Antwort: Nutzen Sie Spring Security als Grundlage und erklären Sie dann das passende Sicherheitsmodell für die Anwendung. Eine gute Antwort trennt Authentifizierung, Autorisierung, Token-Prüfung und operative Schutzmaßnahmen.
- Authentifizierung: Prüft, wer die API aufruft, häufig über OAuth2/OIDC, Session-Login oder Service-to-Service-Credentials.
- Autorisierung: Begrenzt, was der Aufrufer tun darf, etwa über Rollen, Scopes, Method Security wie
@PreAuthorizeund Regeln in einerSecurityFilterChain. - JWT/OAuth2 Resource Server: Bei zustandslosen APIs werden Bearer Tokens, Issuer, Ablaufzeit, Signatur und Scopes validiert, statt Token-Inhalten blind zu vertrauen.
- API-Härtung: HTTPS, bewusst konfigurierte CORS-Regeln, CSRF bei Browser-Sessions, sichere Fehlermeldungen, Rate Limits und Audit-Logs für sensible Aktionen.
Seltenheit: Häufig Schwierigkeit: Mittel
14. Was ist der Unterschied zwischen @Mock und @InjectMocks in Mockito?
Antwort:
@Mock: Erstellt ein Mock-Objekt der Klasse/Schnittstelle. Es hat kein echtes Verhalten; Sie definieren sein Verhalten mitwhen(...).thenReturn(...).@InjectMocks: Erstellt eine Instanz der Klasse und injiziert die Mocks, die mit den Annotationen@Mock(oder@Spy) erstellt wurden, in diese Instanz. Wird für die zu testende Klasse verwendet.
Seltenheit: Häufig Schwierigkeit: Mittel
15. Wie handhaben Sie Transaktionen in Spring Boot?
Antwort:
Verwendung der Annotation @Transactional.
- Mechanismus: Spring erstellt einen Proxy um die Klasse/Methode. Es startet eine Transaktion vor der Methodenausführung und committet sie, nachdem die Methode zurückkehrt. Wenn eine
RuntimeExceptionausgelöst wird, wird die Transaktion zurückgerollt. - Propagation: Sie können konfigurieren, wie sich die Transaktion auf bestehende Transaktionen bezieht (z. B.
REQUIRED,REQUIRES_NEW).
Seltenheit: Häufig Schwierigkeit: Mittel
Fortgeschrittene Themen
16. Was ist Spring Cloud Config?
Antwort: Spring Cloud Config bietet serverseitige und clientseitige Unterstützung für externalisierte Konfiguration in einem verteilten System.
- Config Server: Zentraler Ort zur Verwaltung externer Eigenschaften für Anwendungen in allen Umgebungen. Es kann von Git, SVN oder Vault unterstützt werden.
- Vorteil: Sie können die Konfiguration ändern, ohne die Anwendung erneut bereitzustellen (mit
@RefreshScope).
Seltenheit: Ungewöhnlich Schwierigkeit: Mittel
17. Erklären Sie den Unterschied zwischen Singleton- und Prototype-Scope in Spring Beans.
Antwort:
- Singleton (Standard): Es wird nur eine Instanz der Bean pro Spring IoC-Container erstellt. Sie wird zwischengespeichert und wiederverwendet.
- Prototype: Jedes Mal, wenn die Bean angefordert wird, wird eine neue Instanz erstellt.
- Andere: Request, Session (web-fähige Scopes).
Seltenheit: Häufig Schwierigkeit: Einfach
18. Was ist der Unterschied zwischen Checked- und Unchecked-Exceptions in Java?
Antwort:
- Checked Exceptions: Erben von
Exception(aber nicht vonRuntimeException). Der Compiler zwingt Sie, sie zu behandeln (Try-Catch) oder sie zu deklarieren (throws). Beispiel:IOException,SQLException. Stellen wiederherstellbare Bedingungen dar. - Unchecked Exceptions: Erben von
RuntimeException. Der Compiler zwingt Sie nicht, sie zu behandeln. Beispiel:NullPointerException,IllegalArgumentException. Stellen Programmierfehler dar. Springs@Transactionalrollt standardmäßig nur bei Unchecked Exceptions zurück.
Seltenheit: Häufig Schwierigkeit: Einfach
19. Wie funktioniert Garbage Collection in Java?
Antwort: Garbage Collection (GC) ist der Prozess der automatischen Rückgewinnung von Speicher, der von Objekten belegt wird, die nicht mehr erreichbar sind.
- Generational Hypothesis: Die meisten Objekte sterben jung.
- Heap Structure: Young Generation (Eden, Survivor Spaces) und Old Generation.
- Minor GC: Bereinigt Young Gen. Schnell.
- Major/Full GC: Bereinigt Old Gen. Langsamer, kann "Stop-the-world"-Pausen verursachen.
- Algorithmen: G1GC (Standard in modernem Java), ZGC, Shenandoah (geringe Latenz).
Seltenheit: Häufig Schwierigkeit: Schwer
20. Was sind Java Streams?
Antwort: Streams, die in Java 8 eingeführt wurden, bieten einen funktionalen Ansatz zur Verarbeitung von Objektsammlungen.
- Funktionen: Deklarativ, Pipelining, Interne Iteration.
- Operationen:
- Intermediate:
filter,map,sorted(lazy). - Terminal:
collect,forEach,reduce(trigger processing).
- Intermediate:
- Parallel Streams: Kann Daten parallel mit mehreren Threads verarbeiten (
.parallelStream()).
Seltenheit: Häufig Schwierigkeit: Mittel


