当 WebMvcConfigurationSupport 存在时,不会生成 Swagger UI

Gre*_*reg 2 java rest swagger-ui spring-boot springfox

我正在尝试在我的 Spring Boot 项目中生成 Swagger UI。JSON API 文档已生成,但 Swagger UI 没有生成,至少当我输入 swagger ui 地址时得到 404。我的依赖项:

    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-boot-starter</artifactId>
        <version>3.0.0</version>
    </dependency>
    <dependency>
        <groupId>io.springfox</groupId>
        <artifactId>springfox-swagger-ui</artifactId>
        <version>3.0.0</version>
    </dependency>
Run Code Online (Sandbox Code Playgroud)

但是,当我删除此配置(并且不执行其他操作)时:

@Configuration
public class WebConfig extends WebMvcConfigurationSupport {

    @Override
    protected void addFormatters(FormatterRegistry registry) {
        registry.addConverter(new SomeEnumConverter());
        registry.addConverter(new AnotherEnumConverter());
    }
}
Run Code Online (Sandbox Code Playgroud)

Swagger UI 可以工作。Swagger UI 转换器有问题吗?有解决该问题的方法吗?

Ped*_*dro 5

需要添加@EnableWebMvc注解

@EnableWebMvc
@Configuration
public class WebConfig extends WebMvcConfigurationSupport {

  @Override
  protected void addFormatters(FormatterRegistry registry) {
    registry.addConverter(new SomeEnumConverter());
    registry.addConverter(new AnotherEnumConverter());
  }
}
Run Code Online (Sandbox Code Playgroud)

但我认为现在配置WebMvc的官方方法是实现WebMvcConfigurer。你可以在官方文档中看到几个例子。我认为如果你使用Spring Boot,它不需要@EnableWebMvc。

@Configuration
public class WebConfig implements WebMvcConfigurer {

  @Override
  protected void addFormatters(FormatterRegistry registry) {
    registry.addConverter(new SomeEnumConverter());
    registry.addConverter(new AnotherEnumConverter());
  }
}
Run Code Online (Sandbox Code Playgroud)