2017-04-13 87 views
1

我想根据某些事件动态地创建,装载和卸载io.vertx.ext.web.RouterVert.x卸载子路由器

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

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

回答

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()); 
} 
+0

我目前还没有我的Vert.X环境搭建,但是这似乎是一个很好的解决方案。 –

相关问题