Route Registry Provider 25.11
Der RouteRegistryProvider ist ein Service Provider Interface (SPI), das Integrationsframeworks ermöglicht, benutzerdefinierte Routenentdeckungsmechanismen bereitzustellen. Dies ermöglicht es Frameworks, ihre eigenen Classpath-Scans und Dependency-Injection-Systeme mit der Routing-Infrastruktur von webforJ zu integrieren.
Überblick
webforJ entdeckt Routen, indem es Pakete auf @Route annotierte Komponenten durchsucht. Das RouteRegistryProvider SPI ermöglicht es Frameworks, dieses Standardverhalten mit ihrem eigenen Entdeckungsmechanismus zu überschreiben.
Verwenden Sie dieses SPI, wenn:
- Integration mit Dependency-Injection-Frameworks (Spring, CDI, ...)
- Unterstützung spezialisierter Umgebungen (OSGi, benutzerdefinierte Classloader, GraalVM)
- Erstellung von Framework-Adaptern, die den Lebenszyklus von Routenkomponenten verwalten müssen
- Wiederverwendung vorhandener Classpath-Scans zur Optimierung der Startzeit
Funktionsweise
Wenn RouteRegistry.ofPackage() aufgerufen wird, überprüft webforJ, ob registrierte Anbieter über Java's ServiceLoader vorhanden sind. Wenn ein Anbieter gefunden wird, wird die Routenentdeckung an diesen Anbieter delegiert. Andernfalls wird der Standard-Scan-Mechanismus verwendet.
Erstellen Ihres Anbieters
Um einen benutzerdefinierten Routenentdeckungsanbieter zu erstellen, implementieren Sie das SPI-Interface und registrieren Sie es über den ServiceLoader-Mechanismus von Java.
Implementieren Sie das SPI
Erstellen Sie eine Klasse, die RouteRegistryProvider implementiert:
public class CustomRouteRegistryProvider implements RouteRegistryProvider {
@Override
public void registerRoutes(String[] packages, RouteRegistry registry) {
// Pakete scannen und @Route-Komponenten registrieren
}
}
Entdeckung aktivieren
Fügen Sie den vollständig qualifizierten Klassennamen Ihres Anbieters zu META-INF/services/com.webforj.router.RouteRegistryProvider hinzu:
com.example.framework.CustomRouteRegistryProvider