Route Registry Provider 25.11
De RouteRegistryProvider is een Service Provider Interface (SPI) die integratiekaders de mogelijkheid biedt om aangepaste route-ontdekkingsmechanismen te bieden. Dit stelt kaders in staat om hun eigen classpath-scanning en afhankelijkheidsinjectiesystemen te integreren met de routeringsinfrastructuur van webforJ.
Overzicht
webforJ ontdekt routes door pakketten te scannen op @Route geannoteerde componenten. De RouteRegistryProvider SPI stelt kaders in staat om dit standaardgedrag te overschrijven met hun eigen ontdekkingsmechanisme.
Gebruik deze SPI wanneer:
- Integreren met afhankelijkheidsinjectiekaders, zoals Spring, of Contexten en Afhankelijkheidsinjectie (CDI)
- Ondersteunen van gespecialiseerde omgevingen (OSGi, aangepaste classloaders, GraalVM)
- Bouwen van raamwerkadapters die de levenscyclus van routecomponenten moeten beheren
- Hergebruik van bestaande classpath-scans om de opstarttijd te optimaliseren
Hoe het werkt
Wanneer RouteRegistry.ofPackage() wordt aangeroepen, controleert webforJ op geregistreerde providers via Java's ServiceLoader. Als een provider wordt gevonden, wordt het ontdekken van routes gedelegeerd aan die provider. Anders wordt het standaard scanmechanisme gebruikt.
Je provider bouwen
Om een aangepast routeontdekkingsprovider te creëren, implementeer je de SPI-interface en registreer je deze via Java's ServiceLoader-mechanisme.
Implementeer de SPI
Maak een klasse die RouteRegistryProvider implementeert:
public class CustomRouteRegistryProvider implements RouteRegistryProvider {
@Override
public void registerRoutes(String[] packages, RouteRegistry registry) {
// Scan pakketten en registreer @Route-componenten
}
}
Ontdekking inschakelen
Voeg de volledig gekwalificeerde naam van je providerklasse toe aan META-INF/services/com.webforj.router.RouteRegistryProvider:
com.example.framework.CustomRouteRegistryProvider