Vert.x 卸载子路由器

Vert.x unmount subrouter

我想根据特定事件动态创建、装载和卸载 io.vertx.ext.web.Router

使用 Router::routerRouter::mountSubRouter 创建新路由器并安装它没有问题。每个创建的子路由器都将添加到 java.util.Map 中,以便稍后可以获取它们,因为无法查询子路由器的根 Router

但是 Router 不提供卸载子路由器的功能。我可以在子路由器上使用 Router::clear 来删除它的所有路由,但想知道是否有更好的方法来卸载子路由器。

试试这个:

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