Siirry pääsisältöön

Reitinhallinnan tarjoaja 25.11

Avaa ChatGPT:ssä

RouteRegistryProvider on palveluntarjoajaliittymä (SPI), joka mahdollistaa integraalikehyksille omien reitin löytämismekanismien tarjoamisen. Tämä mahdollistaa kehysten integroimisen omien luokkahaun ja riippuvuuksien injektiojärjestelmien kanssa webforJ:n reititysinfrastruktuuriin.

Yleiskatsaus

webforJ löytää reitit skannaamalla paketteja @Route-annotoituja komponentteja varten. RouteRegistryProvider SPI mahdollistaa kehyksille tämän oletuskäytöksen ylittämisen omalla löytämismekanismilla.

Käytä tätä SPI:tä, kun:

  • Integroit riippuvuuksien injektiojärjestelmiin (Spring, CDI, ...)
  • Tuet erikoistuneita ympäristöjä (OSGi, mukautetut luokkakuormittimet, GraalVM)
  • Rakennat kehysadaptereita, jotka tarvitsevat hallita reitti-komponenttien elinkaarta
  • Hyödynnät olemassa olevia luokkahaun tuloksia käynnistysajan optimointiin

Toimintaperiaate

Kun RouteRegistry.ofPackage() kutsutaan, webforJ tarkistaa rekisteröidyt tarjoajat Java:n ServiceLoader-mekanismin kautta. Jos tarjoaja löytyy, reitin löytämistoiminto delegoidaan tuolle tarjoajalle. Muussa tapauksessa oletuskäytänne skannausmekanismi on käytössä.

Tarjoajan luominen

Luodaksesi mukautetun reitin löytämistarjoajan, toteuta SPI-liittymä ja rekisteröi se Java:n ServiceLoader-mekanismin kautta.

Toteuta SPI

Luo luokka, joka toteuttaa RouteRegistryProvider:

public class CustomRouteRegistryProvider implements RouteRegistryProvider {

@Override
public void registerRoutes(String[] packages, RouteRegistry registry) {
// Skannaa paketteja ja rekisteröi @Route-komponentit
}
}

Aktivoi löytö

Lisää tarjoajan täysin kvalifioitu luokan nimi tiedostoon META-INF/services/com.webforj.router.RouteRegistryProvider:

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