我在使用Guice的同时使用AbstractModule
和ServletModule
类作为超级类型在网络上找到了示例。我想知道在Web应用程序的哪种情况下需要使用哪一种。
我正在使用RESTful Web服务(使用Jersey),并且工件是WAR文件。
最佳答案
ServletModule扩展了AbstractModule,因此仅使用bind
,install
或@Provides
方法的常规绑定可以自由使用其中一个。但是,ServletModule还提供了特定于servlet的绑定,尤其是要从filter
调用的serve
和filterRegex
(具有相应的变体serveRegex
和configureServlets
)。
在Guice中,模块不必指定与之一起使用或用作依赖关系的模块。您可以自由地一起使用AbstractModule和ServletModule,并且只要它们安装在同一Injector中,它们就可以依赖彼此的绑定。但是,您至少需要一个ServletModule来配置服务路径。
一个为Jersey REST服务提供动力的ServletModule的示例:[link]