整合之後,頁面:
0.springboot版本1.4.1(compile group: 'org.springframework.boot', name: 'spring-boot', version: '1.4.1.RELEASE')
對應swagger版本:2.6.1
1. 需要的jar
guava-18.0.jar
jackson-annotations-2.8.0.jar
jackson-databind-2.6.6.jar
springfox-core-2.6.1.jar
springfox-schema-2.6.1.jar
springfox-spi-2.6.1.jar
springfox-spring-web-2.6.1.jar
springfox-swagger2-2.6.1.jar
springfox-swagger-common-2.6.1.jar
springfox-swagger-ui-2.6.1.jar
spring-plugin-core-1.2.0.RELEASE.jar
spring-plugin-metadata-1.2.0.RELEASE.jar
swagger-annotations-1.5.10.jar
swagger-models-1.5.10.jar
用maven引入的話,只需要在pom文件添加以下兩個依賴即可:
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger2</artifactId>
<version>2.6.1</version>
</dependency>
<dependency>
<groupId>io.springfox</groupId>
<artifactId>springfox-swagger-ui</artifactId>
<version>2.6.1</version>
</dependency>
2. 創建SwaggerConfig.java
package gwxm.sffw;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
//import io.swagger.models.Contact;
import springfox.documentation.builders.ApiInfoBuilder;
import springfox.documentation.builders.PathSelectors;
import springfox.documentation.builders.RequestHandlerSelectors;
import springfox.documentation.service.ApiInfo;
import springfox.documentation.spi.DocumentationType;
import springfox.documentation.spring.web.plugins.Docket;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
/**
* Swagger API文檔url爲: http://localhost:8089/gwxmsffw/swagger-ui.html
* @author fuhm
*
*/
@ComponentScan("gwxm.sffw.result.controller") //需要掃描的api位置
@Configuration //啓動時加載類
@EnableSwagger2 //啓用Swagger API文檔
public class SwaggerConfig {
/**
* swagger2的配置文件,這裏可以配置swagger2的一些基本的內容,
* 比如掃描的包等等
* @return docket
*/
@Bean
public Docket createRestApi() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
.apis(RequestHandlerSelectors.basePackage("gwxm.sffw.result")) //爲當前包路徑 ,掃描controller包
// .apis(RequestHandlerSelectors.withClassAnnotation(RestController.class)) // 含有RestController的註解
// .apis(RequestHandlerSelectors.withClassAnnotation(Api.class)) // 含有api的註解
.paths(PathSelectors.any()) // 所有controller
.build();
}
private ApiInfo apiInfo() {
return new ApiInfoBuilder()
.title("gwxmsffw 測試使用 Swagger2 構建RESTful API")
.description("gwxmsffw API 1.0 操作文檔")
.termsOfServiceUrl("https://www.cnblogs.com/wadmwz/") //服務條款網址
.version("1.0")
// .contact( "gwxmsffw contact" )
.build();
}
}
3. 啓動類添加註解 : @EnableSwagger2
若是springboot項目,此時啓動項目。訪問 http://localhost:8094/swagger-ui.html#/ 就可以了(8094是自己項目的端口號)。若404,則自定義資源目錄,即第四步:
4. 創建WebMvcConfig.java
package gwxm.sffw;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;
@Configuration
public class WebMvcConfig extends WebMvcConfigurerAdapter {
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
registry.addResourceHandler("swagger-ui.html")
.addResourceLocations("classpath:/META-INF/resources/");
registry.addResourceHandler("/webjars/**")
.addResourceLocations("classpath:/META-INF/resources/webjars/");
}
}
5. 注意攔截器不要把以下請求攔截!
/swagger-ui.html
/webjars/*
/v2/api-docs
/swagger-resources/*
6.訪問路徑