Overslaan naar hoofdinhoud

Route Registry Provider 25.11

Openen in ChatGPT

De RouteRegistryProvider is een Service Provider Interface (SPI) die integratiekaders in staat stelt om aangepaste routeontdekkingsmechanismen te bieden. Dit stelt kaders in staat om hun eigen classpath-scanning en dependency injection systemen te integreren met de routinginfrastructuur 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 dependency injection kaders (Spring, CDI, ...)
  • Ondersteunen van gespecialiseerde omgevingen (OSGi, aangepaste classloaders, GraalVM)
  • Bouwen van framework-adapters die de levenscyclus van routecomponenten moeten beheren
  • Hergebruiken 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 de routeontdekking gedelegeerd aan die provider. Anders wordt het standaard scanning-mechanisme gebruikt.

Je provider bouwen

Om een aangepast routeontdekkingsprovider te maken, 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 classnaam van je provider toe aan META-INF/services/com.webforj.router.RouteRegistryProvider:

src/main/resources/META-INF/services/com.webforj.router.RouteRegistryProvider
com.example.framework.CustomRouteRegistryProvider