小编典典

无法使Swagger UI与Spring Boot一起使用

spring-boot

我正在尝试使Swagger UI与Spring Boot
1.2.1一起使用。我按照https://github.com/martypitt/swagger-
springmvc上的说明进行操作,并@EnableSwagger在我的spring配置中添加了它。

目前,当我转至JSON时,我http://localhost:8080/api-docs却返回了JSON,但没有很好的HTML。

我正在使用Maven并添加了对swagger-ui的依赖:

<dependency>
    <groupId>org.ajar</groupId>
    <artifactId>swagger-spring-mvc-ui</artifactId>
    <version>0.4</version>
</dependency>

这是我完整的依赖项列表:

<dependencies>
        <dependency>
            <groupId>com.mangofactory</groupId>
            <artifactId>swagger-springmvc</artifactId>
            <version>0.9.4</version>
        </dependency>
        <dependency>
            <groupId>org.ajar</groupId>
            <artifactId>swagger-spring-mvc-ui</artifactId>
            <version>0.4</version>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-websocket</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-actuator</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
    </dependencies>

我也尝试将其http://localhost:8080/docs/index.html作为URL,但这仅给出了“ Whitelabel错误页面”

更新:

我在Github上创建了一个测试项目来显示问题:https : //github.com/wimdeblauwe/springboot-swagger-
test


阅读 308

收藏
2020-05-30

共1个答案

小编典典

您的问题出在您的SwaggerConfiguration文件中。您需要取出@EnableWebMvc,因为这会导致默认的Spring
Boot视图解析器被默认的“ SpringWebMvc”覆盖,后者以不同的方式提供静态内容。

默认情况下,Spring Boot将提供以下任何目录中的静态内容:

  • / META-INF /资源/
  • /资源/
  • /静态的/
  • /上市/

包括webjar。

我遇到了同样的问题,并且在文档中找到了这个问题:http :
//docs.spring.io/spring-boot/docs/current/reference/html/boot-features-
developing-web-applications.html#boot-features -spring-mvc-
自动配置

如果您想完全控制Spring MVC,可以使用添加自己的@Configuration注释@EnableWebMvc。如果您想保留Spring
Boot MVC功能,而只想添加其他MVC配置(拦截器,格式化程序,视图控制器等),则可以添加自己@Bean的type
WebMvcConfigurerAdapter,但 不添加 @EnableWebMvc

我希望这有帮助。

2020-05-30