2017-04-13 78 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環境搭建,但是這似乎是一個很好的解決方案。 –

相關問題