guice - Swagger 和 Google Guice 设置

标签 guice swagger guice-servlet

我正在尝试向我的项目添加 Swagger 。我们的设置与示例项目略有不同。我们使用 guice 和 guice-servlet 来注入(inject)并启动我们的 JerseyServletModule。

今天我们的 web.xml 看起来像这样

<web-app ....>
    <listener>
        <listener-class>com.mypackage.MyServletModule</listener-class>
     </listener>
    <filter>
        <filter-name>guiceFilter</filter-name>
        <filter-class>com.google.inject.servlet.GuiceFilter</filter-class>
    </filter>
    <filter-mapping>
        <filter-name>guiceFilter</filter-name>
        <url-pattern>/*</url-pattern>
    </filter-mapping>
</web-app>

MyServletModule 类看起来像
public class MyServletModule extends GuiceServletContextListener {
  ...
  @Override
  protected Injector getInjector() {
  JerseyServletModule api = new JerseyServletModule() {
      @Override
      protected void configureServlets() {
        ... 
        bind().to()
        ... 
        serve("/api/v1/*").with(GuiceContainer.class);
        }
      };
    return Guice.createInjector(api);
  }
}

我应该在哪里以及如何添加 Swagger ?

最佳答案

您需要告诉 Jersey 在哪里可以找到这样的 Swagger 资源(其中 org.example 是您的包含服务的包):

Map<String, String> params = Maps.newHashMap();
params.put(PackagesResourceConfig.PROPERTY_PACKAGES, "org.example;com.wordnik.swagger.jaxrs.listing");
serve("/api/v1/*").with(GuiceContainer.class, params);

还要确保 Swagger 在您的类路径中。如果您使用的是 Maven,请添加:

<dependency>
  <groupId>com.wordnik</groupId>
  <artifactId>swagger-jaxrs_2.9.1</artifactId>
  <version>1.2.1</version>
  <scope>compile</scope>
</dependency>

关于guice - Swagger 和 Google Guice 设置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16858253/

相关文章:

java - Guice 服务依赖关系

guice-servlet - 如何在 Jersey 2.0 中使用 guice-servlet?

Java Guice 与 servlet 线程 "main"java.lang.NoClassDefFoundError : com/google/inject/internal/util/$Preconditions 中出现异常

spring-boot - 在@ModelAttribute 注释方法中自动记录@PathVariable 注释参数

guice - 使用 guice servlet 扩展时是否可以对 servlet 破坏使用react?

java - 类加载器(和 Guice)表现得很奇怪

java - 如何将我的类的实例注入(inject)另一个类?

java - 使用 Guice 注入(inject)通用实现

c# - 是否可以自定义 Swagger Schema?

java - Springfox/Swagger 中用于返回 ObjectNode 的自定义 ResponseModel