Vert.x卸载子路由器

时间:2017-04-13 11:32:15

标签: vert.x

我想基于某些事件动态创建,装载和卸载io.vertx.ext.web.Router

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

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

1 个答案:

答案 0 :(得分:2)

试试这个:

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