我使用Guice在我的Web應用程序中路由請求,並且我想模塊化一些我將要處理的URL模式的路由。理想情況下,我希望能夠做這樣的事情在我ServletModule
:使用Guice servlets路由子路徑
delegate("/foo/bar/*").to(SomeOtherServletModule.class);
// in SomeOtherServletModule.configureServlets:
serve("/foo/bar/quux").with(Quux.class);
甚至更好:
delegatePrefix("/foo/bar/").to(SomeOtherServletModule.class);
// in SomeOtherServletModule.configureServlets:
serve("/quux").with(Quux.class); // prefix removed
這是可能的吉斯?看起來Guice試圖讓ServletModules安裝的綁定成爲一個單例,而這又被存儲在誰知道的地方GuiceServletContextListener
被GuiceFilter
使用,但是我想解除這個單例,這樣我就可以像委託一樣這不是將所有東西都緊緊地綁定在一個函數中。
有趣的評論。不過,我認爲這不會是一個巨大的問題 - 人們可以認爲它大致相當於將所有請求代理到另一個Web服務器根目錄的路徑下。儘管任意模塊在同一個servlet容器中進行子派生確實可能會造成混淆,但即使這意味着子模塊將不得不聲明支持這種使用方法,仍然可以通過某種方式實現此目的。但我想這屬於這種情況下的功能請求:) – bdonlan