Was ist Spring Boot?
Spring Boot ist ein Framework zur schnellen Entwicklung von Spring-Anwendungen. Es reduziert Konfiguration durch Auto-Configuration und Starter-Abhängigkeiten. Anwendungen sind sofort lauffähig.
Was ist der Unterschied zwischen Spring und Spring Boot?
Spring ist ein umfassendes Framework. Spring Boot baut darauf auf und vereinfacht Setup und Konfiguration. Es bringt Embedded Server und Konventionen mit.
Was ist Auto-Configuration in Spring Boot?
Auto-Configuration registriert Beans automatisch. Sie basiert auf Classpath-Abhängigkeiten und Properties. Entwickler müssen weniger konfigurieren.
Was sind Starter Dependencies?
Starter bündeln häufig genutzte Abhängigkeiten. Sie vereinfachen das Dependency-Management. Beispiele sind spring-boot-starter-web oder data-jpa.
Was ist der ApplicationContext?
Der ApplicationContext ist der zentrale Spring Container. Er verwaltet Beans und deren Lifecycle. Er stellt Dependency Injection bereit.
Was ist Dependency Injection in Spring?
Abhängigkeiten werden vom Container bereitgestellt. Klassen erzeugen ihre Dependencies nicht selbst. Das verbessert Testbarkeit und Wartbarkeit.
Was ist der Unterschied zwischen @Component @Service und @Repository?
Alle sind Stereotypen für Beans. @Service und @Repository sind semantische Spezialisierungen. @Repository fügt zusätzlich Exception-Übersetzung hinzu.
Was ist @ConfigurationProperties?
Damit werden externe Konfigurationen an POJOs gebunden. Die Konfiguration ist typsicher und strukturiert. Sie ersetzt viele @Value-Anwendungen.
Was ist Spring Web MVC?
Spring MVC ist das imperative Web-Framework. Jede Anfrage blockiert einen Thread. Es eignet sich für klassische Webanwendungen.
Was ist Spring WebFlux?
WebFlux ist das reaktive Web-Framework von Spring. Es basiert auf nicht-blockierender Verarbeitung. Es eignet sich für hohe Parallelität.
Unterschied zwischen Spring MVC und WebFlux?
MVC ist blockierend und thread-basiert. WebFlux ist asynchron und event-getrieben. Beide können nicht beliebig gemischt werden.
Was bedeutet reaktives Programmieren?
Reaktives Programmieren arbeitet mit Datenströmen. Es reagiert auf Events statt auf Aufrufe. Ziel ist bessere Skalierbarkeit.
Was sind Mono und Flux?
Mono repräsentiert 0 oder 1 Wert. Flux repräsentiert 0 bis n Werte. Beide stammen aus Project Reactor.
Was ist Project Reactor?
Project Reactor ist die reaktive Basisbibliothek von Spring. Sie implementiert den Reactive-Streams-Standard. WebFlux baut darauf auf.
Was ist Backpressure?
Backpressure steuert den Datenfluss zwischen Producer und Consumer. Konsumenten bestimmen die Geschwindigkeit. Das verhindert Überlastung.
Warum ist Blocking Code in WebFlux problematisch?
Blocking blockiert Event-Loop-Threads. Das zerstört Skalierungsvorteile. Blocking Code muss ausgelagert werden.
Was ist Scheduler in Reactor?
Scheduler steuern die Thread-Nutzung. Beispiele sind elastic oder parallel. Sie helfen bei Thread-Wechseln.
Was ist @Transactional in reaktiven Anwendungen?
Klassische @Transactional funktioniert nicht immer. Reactive Transaktionen nutzen spezielle APIs. Sie sind expliziter.
Was ist Spring Data Reactive?
Spring Data Reactive unterstützt reaktive Datenzugriffe. Beispiele sind R2DBC oder Reactive MongoDB. JDBC ist nicht reaktiv.
Warum ist JDBC nicht reaktiv?
JDBC blockiert Threads. Es unterstützt keine asynchrone Verarbeitung. Daher ist es für WebFlux ungeeignet.
Was ist R2DBC?
R2DBC ist eine reaktive Datenbank-API. Sie ersetzt JDBC im reaktiven Kontext. Sie ermöglicht nicht-blockierenden Datenzugriff.
Was ist @RestController?
@RestController kombiniert @Controller und @ResponseBody. Methoden liefern direkt JSON. Es wird für REST APIs genutzt.
Wie funktioniert Exception Handling in WebFlux?
WebFlux nutzt funktionale Error-Handler oder @ControllerAdvice. Fehler werden reaktiv verarbeitet. Der Ansatz unterscheidet sich von MVC.
Was ist Actuator in Spring Boot?
Actuator stellt Betriebs- und Monitoring-Endpunkte bereit. Beispiele sind health oder metrics. Er unterstützt Observability.
Was ist Observability in Spring Boot?
Observability umfasst Metriken Logs und Traces. Spring Boot integriert Micrometer und OpenTelemetry. Das erleichtert Monitoring.
Was ist Reactive Security?
Spring Security bietet reaktive Varianten. Sie sind nicht-blockierend. Klassische Security-Konfigurationen sind nicht kompatibel.
Wann sollte man WebFlux einsetzen?
Bei vielen gleichzeitigen Verbindungen. Besonders bei I/O-lastigen Systemen. Nicht bei CPU-lastigen Aufgaben.
Wann ist Spring MVC besser geeignet?
Bei klassischen CRUD-Anwendungen. Wenn Blocking kein Problem ist. Es ist einfacher zu verstehen.
Was sind typische Fehler bei Spring Reactive?
Mix aus blocking und non-blocking Code. Falsche Scheduler-Nutzung. Unterschätzung der Komplexität.
Wie testet man WebFlux-Anwendungen?
Man nutzt WebTestClient. Tests sind nicht-blockierend. StepVerifier wird für Flux und Mono verwendet.
Zuletzt geändertvor einem Monat