- 在pom.xml文件中配置(用的2.6.1版本,2.9.2有點丑)
<properties> <!--<spring.swagger2.version>2.9.2</spring.swagger2.version>--> <spring.swagger2.version>2.6.1</spring.swagger2.version> </properties> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>${spring.swagger2.version}</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>${spring.swagger2.version}</version> </dependency>
- 寫配置類
package com.xt.mybatisplusstudy.config; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; 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; @Configuration @EnableSwagger2 public class Swagger2Config { @Bean public Docket createRestApi() { return new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .select() .apis(RequestHandlerSelectors.basePackage("com.xt.mybatisplusstudy.controller"))//在這寫上你的controller路徑 .paths(PathSelectors.any()) .build(); } private ApiInfo apiInfo() { return new ApiInfoBuilder() .title("swaggerApi文檔") // .description("簡單優雅的restfun風格") .description("你看這個玩意挺好用的") .termsOfServiceUrl("") .version("1.0") .build(); } }
- 注釋介紹
常用注解: - @Api()用於類; 表示標識這個類是swagger的資源 - @ApiOperation()用於方法; 表示一個http請求的操作 - @ApiParam()用於方法,參數,字段說明; 表示對參數的添加元數據(說明或是否必填等) - @ApiModel()用於類 表示對類進行說明,用於參數用實體類接收 - @ApiModelProperty()用於方法,字段 表示對model屬性的說明或者數據操作更改 - @ApiIgnore()用於類,方法,方法參數 表示這個方法或者類被忽略 - @ApiImplicitParam() 用於方法 表示單獨的請求參數 - @ApiImplicitParams() 用於方法,包含多個 @ApiImplicitParam 具體使用舉例說明: @Api() 用於類;表示標識這個類是swagger的資源 tags–表示說明 value–也是說明,可以使用tags替代 但是tags如果有多個值,會生成多個list @ApiOperation() 用於方法;表示一個http請求的操作 value用於方法描述 notes用於提示內容 tags可以重新分組(視情況而用) @ApiParam() 用於方法,參數,字段說明;表示對參數的添加元數據(說明或是否必填等) name–參數名 value–參數說明 required–是否必填 @ApiModel()用於類 ;表示對類進行說明,用於參數用實體類接收 value–表示對象名 description–描述 都可省略 @ApiModelProperty()用於方法,字段; 表示對model屬性的說明或者數據操作更改 value–字段說明 name–重寫屬性名字 dataType–重寫屬性類型 required–是否必填 example–舉例說明 hidden–隱藏 @ApiIgnore()用於類或者方法上,可以不被swagger顯示在頁面上 比較簡單, 這里不做舉例 @ApiImplicitParam() 用於方法 表示單獨的請求參數 @ApiImplicitParams() 用於方法,包含多個 @ApiImplicitParam name–參數ming value–參數說明 dataType–數據類型 paramType–參數類型 example–舉例說明 - 訪問
http://localhost:8081/xt/swagger-ui.html 訪問原則-->ip+項目名+swagger-ui.html
- 效果示例

- 遇到的一個坑
//@Api(value = "登錄接口",tags = "login control") 坑 tags中如果寫中文,swaggerui接口無法展開 @Api(description = "登錄接口")
