Java · Experte
Structured Task Scope (Preview in Java 21+) behandelt Gruppen zusammengehöriger Aufgaben, die in verschiedenen Threads laufen, als eine einzige Arbeitseinheit. ShutdownOnFailure stellt sicher, dass…
asyncbestpractices
Snippet öffnen →Java · Experte
StampedLock bietet einen 'optimistischen' Modus, bei dem keine echte Sperre gesetzt wird. Stattdessen wird ein 'Stamp' zurückgegeben, der später validiert werden muss. Falls während des Lesens ein…
performanceasync
Snippet öffnen →Java · Experte
MethodHandles sind der Kernmechanismus hinter 'invokedynamic'. Sie bieten eine performantere und typsicherere Alternative zur klassischen Reflection. Sobald ein MethodHandle verknüpft ist, kann die…
performanceoop
Snippet öffnen →Java · Experte
VarHandles bieten einen Standardweg für atomare Operationen und Memory Fencing. 'setRelease' stellt sicher, dass alle vorherigen Schreibvorgänge im aktuellen Thread für andere Threads sichtbar sind…
performanceasync
Snippet öffnen →Java · Experte
Die Foreign Function & Memory (FFM) API (Java 22+) bietet einen sicheren und effizienten Weg, auf Speicher außerhalb des Java-Heaps zuzugreifen. Im Gegensatz zu ByteBuffer nutzt sie 'Arenas' für ei…
memoryperformance
Snippet öffnen →Java · Experte
Record Patterns (Java 21) ermöglichen die tiefe Dekonstruktion komplexer Datenstrukturen direkt innerhalb von 'instanceof'- oder 'switch'-Anweisungen. Dies eliminiert Boilerplate-Casts und Accessor…
syntaxoopbestpractices
Snippet öffnen →Java · Experte
Die StackWalker-API ist eine performanceorientierte Methode zur Inspektion des Call-Stacks. Im Gegensatz zu Throwable.getStackTrace() bietet sie einen Stream-basierten Ansatz, der nur die benötigte…
performanceerrorhandlingbestpractices
Snippet öffnen →Java · Experte
Scoped Values (JEP 446) bieten eine moderne, threadsichere Alternative zu ThreadLocal. Sie wurden speziell für virtuelle Threads entwickelt und ermöglichen das effiziente, unveränderliche Teilen vo…
asyncmemorybestpractices
Snippet öffnen →Java · Experte
Virtuelle Threads können an ihren Carrier-Plattform-Thread 'gepinnt' werden, wenn sie innerhalb eines 'synchronized'-Blocks blockieren. Um hohen Durchsatz und Skalierbarkeit zu erhalten, sollten En…
asyncperformancebestpractices
Snippet öffnen →Java · Expertespring
Das Condition-Interface von Spring ermöglicht eine anspruchsvolle, programmatische Logik für die Bean-Registrierung basierend auf Umgebungseigenschaften, dem Vorhandensein von Klassen oder existier…
frameworkspatterns
Snippet öffnen →Java · Expertespring
DeferredResult wird verwendet, um den Web-Container-Thread freizugeben, während lang laufende Aufgaben in einem separaten Thread verarbeitet werden. Dies verbessert die Skalierbarkeit und den Durch…
asyncperformance
Snippet öffnen →Java · Expertespring
Über die einfache Feldvalidierung hinaus unterstützt Spring Class-Level-Constraints via ConstraintValidator. Dies ermöglicht komplexe Validierungslogik, die mehrere Felder innerhalb eines Objekts e…
errorhandlingbestpractices
Snippet öffnen →Java · Expertespring
Spring Security ermöglicht eine feingranulare Zugriffskontrolle mithilfe der Spring Expression Language (SpEL). Durch Referenzierung benutzerdefinierter Beans in @PreAuthorize können komplexe Autor…
securityframeworks
Snippet öffnen →Java · Expertespring
In Spring WebFlux reicht @ControllerAdvice oft nicht aus, wenn Fehler außerhalb des Controller-Kontexts auftreten. Die Erweiterung von AbstractErrorWebExceptionHandler ermöglicht eine low-level, ni…
frameworkserrorhandlingasync
Snippet öffnen →Java · Expertespring
Optimistisches Locking verhindert 'Lost Updates' in nebenläufigen Umgebungen. Das @Version-Feld wird von Hibernate bei Updates automatisch geprüft; falls sich die Version in der Datenbank geändert…
frameworkspatternsbestpractices
Snippet öffnen →Java · Expertespring
Springs @Transactional basiert auf AOP-Proxies. Der direkte Aufruf einer transaktionalen Methode innerhalb derselben Klasse umgeht den Proxy. Die Nutzung von ObjectProvider zur Selbst-Injektion ste…
frameworksoopbestpractices
Snippet öffnen →Java · Expertespring
Für komplexe API-Versionierung (z.B. über Header) ermöglicht die Implementierung von RequestCondition das Einklinken eigener Matching-Logik direkt in das RequestMappingHandlerMapping von Spring MVC.
frameworkspatternssyntax
Snippet öffnen →Java · Expertespring
Um sicherzustellen, dass externe Seiteneffekte (wie E-Mails) nur auftreten, wenn eine Transaktion erfolgreich committet wurde, verwendet man @TransactionalEventListener mit der Phase AFTER_COMMIT.
frameworkspatternsasync
Snippet öffnen →Java · Expertespring
Fortgeschrittene Spring Security nutzt mehrere SecurityFilterChain-Beans mit spezifischen RequestMatchern. Dies ermöglicht die dynamische Anwendung unterschiedlicher Sicherheitsrichtlinien basieren…
securityframeworkspatterns
Snippet öffnen →Java · Expertespring
Durch die Implementierung der PropertySourceFactory kann der Prozess des Ladens der Konfiguration abgefangen werden. Dies ermöglicht fortgeschrittene Patterns wie das Entschlüsseln von Geheimnissen…
securityframeworksbestpractices
Snippet öffnen →Java · Expertespring
Benutzerdefinierte Scopes ermöglichen es Entwicklern, Bean-Lebenszyklen über 'singleton' oder 'prototype' hinaus zu verwalten. Ein ThreadScope ist ein Experten-Pattern für Hochverfügbarkeitsszenari…
frameworksmemorypatterns
Snippet öffnen →Java · Expertespring
ImportBeanDefinitionRegistrar bietet Low-Level-Zugriff auf die BeanDefinitionRegistry. Es wird für die Metaprogrammierung verwendet, bei der Beans dynamisch basierend auf Annotationen oder Classpat…
frameworksoopbestpractices
Snippet öffnen →Java · Expertespring
GenericConverter ist die flexibelste Schnittstelle in Springs Konvertierungssystem. Im Gegensatz zu einfachen Convertern bietet sie TypeDescriptors, was Logik ermöglicht, die von Generics oder Anno…
frameworksdatatypesperformance
Snippet öffnen →Java · Expertespring
AbstractRoutingDataSource ermöglicht den Wechsel zwischen mehreren physischen Datenquellen zur Laufzeit basierend auf einem Lookup-Schlüssel, der normalerweise in einem ThreadLocal-Kontext gespeich…
patternsframeworksperformance
Snippet öffnen →Java · Expertespring
Die Nutzung von Java 21+ Virtual Threads in Spring Boot 3.2+ ermöglicht es der Anwendung, Tausende gleichzeitiger blockierender Verbindungen ohne den Speicher-Overhead von Plattform-Threads zu vera…
asyncperformanceframeworks
Snippet öffnen →Java · Expertespring
ExchangeFilterFunctions fungieren als Interceptoren für den WebClient und ermöglichen die Implementierung übergreifender Aspekte wie Logging, Retries oder Auth-Token-Injektion für alle ausgehenden…
frameworkserrorhandlingasync
Snippet öffnen →Java · Expertespring
HandlerInterceptor bieten eine Möglichkeit, Logik anzuwenden, bevor sie den Controller erreicht, aber nach der Servlet-Filter-Kette. Dies ist ideal für Logik, die Kenntnisse über den Spring-Handler…
frameworkssecurityperformance
Snippet öffnen →Java · Expertespring
Das SmartLifecycle-Interface ermöglicht es Komponenten, am Lebenszyklus des ApplicationContext teilzunehmen. Es bietet eine feingliedrige Kontrolle über die Reihenfolge, in der Beans starten und st…
frameworksbestpractices
Snippet öffnen →Java · Expertespring
BeanPostProcessoren ermöglichen die benutzerdefinierte Modifikation neuer Bean-Instanzen. Dieses Experten-Pattern wird verwendet, um Beans in Proxys zu kapseln, zusätzliches Verhalten zu injizieren…
frameworkspatternsoop
Snippet öffnen →Java · Expertespring
Bei der Verwendung von @Async gehen ThreadLocal-Variablen wie der MDC verloren. Ein TaskDecorator ermöglicht es, den Kontext vom aufrufenden Thread zu erfassen und auf den Ausführungsthread anzuwen…
asyncframeworksbestpractices
Snippet öffnen →