Guice:AbstractModule 与 ServletModule

Guice: AbstractModule vs. ServletModule

我在网络上找到了在使用 Guice 时同时使用 AbstractModuleServletModule 类 作为超类型的示例。我想知道在web应用中什么场景需要用到哪一个。

我正在开发 RESTful 网络服务(使用 Jersey),工件是一个 WAR 文件。

ServletModule 扩展了 AbstractModule,因此仅使用 bindinstall@Provides 方法的通用绑定可以自由使用其中一种方法。但是,ServletModule 还提供特定于 servlet 的绑定,特别是 filterserve(具有相应的变体 filterRegexserveRegex),可以从 configureServlets.

在 Guice 中,模块不必指定它们与哪些模块一起工作或作为依赖项使用;您可以自由地一起使用 AbstractModule 和 ServletModule,只要它们安装在同一个 Injector 中,它们就可以依赖彼此的绑定。但是,您至少需要一个 ServletModule 来配置服务路径。

为 Jersey REST 服务提供支持的 ServletModule 示例:[link]