2017-04-13 4 views
1

Ich möchte basierend auf bestimmten Ereignissen io.vertx.ext.web.Router s dynamisch erstellen, bereitstellen und unmounten.Vert.x unmount Unterrouter

Mit Router::router und Router::mountSubRouter kann ein neuer Router erstellt und montiert werden. Jeder erstellte Unterrouter wird zu einer java.util.Map hinzugefügt, so dass sie später abgerufen werden können, da es keine Möglichkeit gibt, die Wurzel Router für Unterrouter abzufragen.

Howerver Router bietet keine Funktion zum Abhängen eines Unterrouters. Ich kann Router::clear auf dem Unterrouter verwenden, um alle seine Routen zu entfernen, aber ich fragte mich, ob es eine bessere Möglichkeit gibt, Unterrouter unmounten.

Antwort

2

versuchen Sie dies:

public static void unMountSubRouter(Router router, String root) { 
    router.getRoutes().stream() 
      .filter(route -> route.getPath() != null && route.getPath().startsWith(root)) 
      .forEach(route -> route.remove()); 
} 
+0

ich derzeit nicht über meine Vert.x Umgebung eingerichtet, aber dies scheint wie eine gute Lösung. –

Verwandte Themen