2014-01-27 27 views
1

我有DispatcherServlet,默認情況下,它使用RequestMappingHandlerMapping找到所有具有@RequestMapping註釋的控制器。如何包含/排除DispatcherServlet中的某些控制器

這工作正常,除了它拿起我的春天上下文中的所有控制器,但我只希望它暴露某些控制器。

有沒有這樣做的方法,不涉及延伸一堆春班?

(不幸的是我的Spring上下文必須包含這些額外的控制器,因爲它們還提供了一些功能,我需要用java調用,我不能夠拆分當前這些了)

回答

0

可以配置包括/排除過濾器以自定義類路徑掃描。這可以在XML Spring配置中或基於@Configuration的Java中完成。因此,根據您需要排除多少個@Controller註釋類,您可以在assignable下列出它們或使用regex過濾器。有關詳情,請參閱Spring文檔「使用過濾器自定義掃描」部分。爲Spring 3.2

+0

在括號中看到我的問題的最後部分 - 我需要這些類是春豆,因爲它們提供了其他功能,我只是不希望它們作爲控制器公開。 – stripybadger

+0

啊,我明白了。對不起,錯過了那部分。然後,我認爲不重寫一些Spring類是可行的。你可能做的一個技巧就是實現[HandlerInterceptor](http://docs.spring.io/spring/docs/3.2.x/javadoc-api/org/springframework/web/servlet/HandlerInterceptor.html)和' preHandle()方法拒絕訪問屬於您要排除的@ Controller類的URL。 – dimchez

相關問題