我正在尝试使Swagger UI与Spring Boot 1.2.1一起使用。我按照https://github.com/martypitt/swagger- springmvc上的说明进行操作,并@EnableSwagger在我的spring配置中添加了它。
@EnableSwagger
目前,当我转至JSON时,我http://localhost:8080/api-docs却返回了JSON,但没有很好的HTML。
http://localhost:8080/api-docs
我正在使用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错误页面”
http://localhost:8080/docs/index.html
更新:
我在Github上创建了一个测试项目来显示问题:https : //github.com/wimdeblauwe/springboot-swagger- test
您的问题出在您的SwaggerConfiguration文件中。您需要取出@EnableWebMvc,因为这会导致默认的Spring Boot视图解析器被默认的“ SpringWebMvc”覆盖,后者以不同的方式提供静态内容。
SwaggerConfiguration
@EnableWebMvc
默认情况下,Spring Boot将提供以下任何目录中的静态内容:
包括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。
@Configuration
@Bean
WebMvcConfigurerAdapter
我希望这有帮助。